完成反序列化对象后在 json 字符串中找到的其他文本
本文关键字:文本 其他 字符串 json 反序列化 对象 | 更新日期: 2023-09-27 18:37:14
这个问题在这里被问了几次,但仍然有一些情况不起作用。
我正在使用 JSON.net 读取 json 数据,并希望将 json 数据读入数据集。我有以下json数据字符串(它可能更复杂,可以嵌套到多个级别)
[{"timestamp": 1383033661,
"base": "USD",
"rates" : {
"AED": 3.673136,
"AFN": 56.962675,
"ALL": 101.792499,
"AMD": 409.561999,
"YER": 215.109837,
"ZAR": 9.851868,
"ZMK": 5230.441665,
"ZMW": 5.395017,
"ZWL": 322.355006}}]
我正在尝试使用以下方法将其读入数据集:
DataSet currency = (DataSet)JsonConvert.DeserializeObject(json, (typeof(DataSet)));
但它抛出异常:
"Additional text found in json string after finishing deserializing object"
注:I尝试将单级 JSON 数据转换为数据表并成功转换,但当我尝试将其转换为数据集时,它再次失败,上面给出的异常相同。
任何人都可以对此例外和解决方案提供见解吗?
你需要一个类似于
public class Rate
{
public string TimeSpan { get; set; }
public string Base { get; set; }
Dictionary<string, string> Rates { get; set; }
}
rates
是 JSON 数组中的另一个 JSON 对象。
const string json = @"{
""timestamp"": 1383033661,
""base"": ""USD"",
""rates"" : {
""AED"": 3.673136,
""AFN"": 56.962675,
""ALL"": 101.792499,
""AMD"": 409.561999,
""YER"": 215.109837,
""ZAR"": 9.851868,
""ZMK"": 5230.441665,
""ZMW"": 5.395017,
""ZWL"": 322.355006
}
}";
Rate currency = (Rate)JsonConvert.DeserializeObject(json, (typeof(Rate)));