首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将json字符串反序列化为集合时出错

将json字符串反序列化为集合时出错
EN

Stack Overflow用户
提问于 2017-10-19 16:46:12
回答 1查看 322关注 0票数 0

我有像下面这样的json字符串

"{\"Key\":3296,\"Value1\":\"Test1\",\"Value2\":\"City\",\"Value3\":\"TX\",\"Value4\":null,\"Value5\":null,\"Value6\":null}{\"Key\":3297,\"Value1\":\"Test2\",\"Value2\":\"PUD\",\"Value3\":\"TX\",\"Value4\":null,\"Value5\":null,\"Value6\":null}"

和相应的C#类

代码语言:javascript
复制
public class MyObject
{
    public int Key { get; set; }
    public string Value1 { get; set; }
    public string Value2 { get; set; }
    public string Value3 { get; set; }
    public string Value4 { get; set; }
    public string Value5 { get; set; }
    public string Value6 { get; set; }
}

当我尝试用Newtonsoft反序列化这个字符串时,我会得到错误。 {“无法反序列化当前JSON对象(例如,{\”名称\“:\”值\})为'System.Collections.Generic.IEnumerable`1MyObject‘类型,因为该类型需要一个JSON数组(例如,1,2,3)反序列化。\r\n要修复此错误,可以将JSON更改为JSON数组(例如,1,2,3),或者将反序列化类型更改为正常的.NET类型(例如,不像整数这样的原始类型),而不是可以从JSON对象反序列化的集合类型(如数组或列表)。还可以将JsonObjectAttribute添加到类型中,以强制它从JSON对象反序列化。\r\nPath 'Key',第1行,位置7“}

我知道对于json数组,字符串没有很好的格式化。这就是我如何得到的字符串,我没有控制它。

在这里,将该字符串转换为IEnumerable of MyObject的最佳选择是什么。字符串也可以有一个对象。

EN

回答 1

Stack Overflow用户

发布于 2017-10-19 20:28:49

按照詹姆斯的回答(我相信你已经弄明白了,但就是这样)。这也应该只适用于一个对象:

代码语言:javascript
复制
string json = <your string here>;
json = "[" + json;
json = json.Replace("}{", "},{");
json += "]";

不确定在json.net中是否有内置的方式来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46834941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档