使用JSON.NET将JSON数组反序列化为字符串数组

时间:2018-03-27 22:40:10

标签: c# .net json json.net

我尝试使用以下命令将JSON数组反序列化为字符串列表:

Newtonsoft.Json.Linq.JArray jsonResponse = JsonConvert.DeserializeObject(result) as Newtonsoft.Json.Linq.JArray;
List<string> response = jsonResponse.ToObject<List<string>>();

JSON具有以下结构:

  

[[&#34; No Es Posible Importar Dos Numeros De Servicios Iguales&#34;,&#34; No Es   Posible Importar Dos Codigos Iguales&#34;]]

但是会引发以下错误:

  

读取字符串时出错。意外的令牌:StartArray。路径&#39; [0]&#39;。

如何在没有错误的情况下反序列化对象?

3 个答案:

答案 0 :(得分:2)

感谢!!!

我遵循了评论中的建议,一切正常。

我只将代码更改为:

clookup =     {
'$lookup': {
    'from': "contacts",
    'localField': "_id",
    'foreignField': "account_id",
    'as': "contacts"
    }
}

sort = { '$sort': { '_id.year': 1, '_id.month': 1 } }

docs = Account.collection.aggregate([clookup, sort])
pp docs.first

获取列表清单。

答案 1 :(得分:0)

这应该有效: -

var list = JArray.Parse(@"[[""a"", ""b"", ""c""]]").Values().Select(x => x.Value<string>()).ToList();

希望有所帮助!

答案 2 :(得分:0)

我花了一些时间用 C#Fiddle (我喜欢这些用于协作),而你在本地运行它,但我把你的解决方案放到一个小提琴中,这样一些其他人以后可能会有完整的代码运行,他们可以玩。

https://dotnetfiddle.net/mAU6gi

此外,这突出了需要包含,并且页面上可以随时提供nuget包!

using Newtonsoft.Json;
using System.Collections.Generic;

这也向用户显示如何枚举他们的新嵌套列表,并按照他们从JSON中输入的顺序显示所有值。

<强>谢谢! -app-德文