-edit-也许有一个使用属性的解决方案?
我找到了最奇怪的json。它看起来像下面的字符串。我能想到处理它的唯一方法是使用一个对象数组。我从未在下面的数组中看到过整数和字符串混合。
然后我被迫进行类型转换。是否有更好的方法来获取整数和字符串?
注意:第一个数组可以包含0到20个元素。它内部的数组总是有3个,前两个是整数,第三个是一个字符串。也许我可以利用这些知识对我有利吗?
{
var ser = new JavaScriptSerializer();
var o = ser.Deserialize<RootObj>(@"{""resources"": [[123,567,""<div ...""]]}");
var o2 = o.resources[0];
var v = (int)o2[1];
var sz = (string)o2[2];
}
class RootObj {
public object[][] resources;
}
答案 0 :(得分:0)
听起来有点LINQ会在这里派上用场。鉴于您的反序列化对象o
,您需要以下内容。
var result = o.Select(c => new
{
v1 = (int)c[0],
v2 = (int)c[1],
sz = (string)c[2],
});
请注意,new { ... }
构造创建了一个anoynomous类型的对象,如果更合适,可以使用struct。
但是,您还没有给出任何真实的上下文,所以最好的解决方案实际上可能是什么都不做,并将反序列化的结果保留为弱类型的对象数组...您总是可以将值转换为特定类型你需要稍后明确使用它们。
答案 1 :(得分:0)
忽略它,因为使用对象并不坏。