我有一个 Javascript 控件,它可以将 JSON 字符串作为 AJAX 返回给服务器。但是当我尝试保存时,Newtonsoft 抛出异常
Additional text found in JSON string after finishing deserializing object.
我尝试构建一个非常简单的 JSON,如下所示,它抛出了这个异常
[{
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}, {
"TopicName": "Hello World",
"OrdinalOrder": 0
}]
我调用的API是
DataSet dsTopics = JsonConvert.DeserializeObject<DataSet>(strTopicset);
其中 strTopicSet 包含上述字符串。当我将上面的字符串粘贴到 http://www.jsonlint.com/ 时,它会显示 Valid JSON。
有人可以指导我哪里出错了。我确实浏览了 Newtonsoft 上的 StackExchange 论坛和典型错误,但无法将其归零。
我使用的是 9.0.1.19813 版本的 Newtonsoft。
最佳答案
json 格式看起来不像数据集格式。
试试这个。
DataTable dsTopics = JsonConvert.DeserializeObject<DataTable>(strTopicset);
或者:(我觉得这个更有用)
public class Topic
{
public string TopicName { get; set; }
public int OrdinalOrder { get; set; }
}
List<Topic> topics = JsonConvert.DeserializeObject<List<Topic>>(strTopicset);
关于javascript - JSON.NET 抛出 'additional text found in JSON string after finishing deserializing object.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363710/