我从第三方收到以下JSON字符串:
{
"Ch": [{
"i": 100,
"m": "Time",
"u": "(sec)",
"d": 0,
"z": 0.345313,
"yi": "0.000000",
"ya": "6.906250",
"a": 0,
"s": 1664,
"data": "RN]]>"
}, {
"i": 101,
"m": "Stress",
"u": "(kPa)",
"d": 0,
"z": 60,
"yi": "0.000000",
"ya": "1200.000000",
"a": 0
}, {
"i": 102,
"m": "Strain",
"u": "(micro e)",
"d": 0,
"z": 8,
"yi": "200.000000",
"ya": "360.000000",
"a": 0
}, {
"i": 103,
"m": "Stress",
"u": 360,
"d": 0,
"z": 0,
"yi": "0.000000",
"ya": "0.000000",
"a": 0,
"s": 1664,
"data": "QVORR`Pb_UQRR</code>OObTNRRUTaWRVRRSaPQPdRRaPNSORRR]]>"
}, {
"i": 104,
"m": "Strain",
"u": 360,
"d": 0,
"z": 0,
"y": 0,
"yi": "0.000000",
"ya": "0.000000",
"a": 1,
"s": 1664,
"data": "SVdRQSP_VWQRQa]]>"
}]
}
我使用以下类:
public class testCh
{
public int i { get; set; }
public string m { get; set; }
public object u { get; set; }
public int d { get; set; }
public double z { get; set; }
public string yi { get; set; }
public string ya { get; set; }
public int a { get; set; }
[JsonIgnore]
public int s { get; set; }
[JsonIgnore]
public string data { get; set; }
}
public class testRootObject
{
public List<testCh> tCh { get; set; }
}
最后我在我的主要课程中尝试这个:
var response1 = JsonConvert.DeserializeObject<testRootObject>(content1);
foreach (testCh tc in response1.tCh)
{
string name = tc.m;
}
我得到一个空的testRootObject []
我试图忽视&#34; a&#34;和&#34;数据&#34;在我的testCH课程中:
[JsonIgnore]
public int s { get; set; }
[JsonIgnore]
public string data { get; set; }
它没有用。
我不确定为什么我无法对其进行反序列化。它一定是愚蠢的东西,但经过几天的努力,我无法看到它。
非常感谢任何帮助或提示。
答案 0 :(得分:0)
我已经检查过并确认了。你在这里遇到的唯一错误是列表对象的名称。它应该是{j}字符串中的Ch
。
public class testRootObject
{
public List<testCh> Ch { get; set; }
}
如果必须将该属性名称设为tCh
,则可以执行以下操作:
public class testRootObject
{
[JsonProperty("Ch")]
public List<testCh> tCh { get; set; }
}