在没有循环的情况下将VBSON中的JSON对象数组值转换为字符串数组

时间:2016-04-26 13:00:16

标签: json vb.net linq

我有像这样的JSON对象数组

dim d as string="[{name:'alex',age:20,id:1},{name:'John',age:22,id:2},
{name:'Philip',age:26,id:3},{name:'Mathew',age:27,id:4},
{name:'James',age:30,id:5},{name:'Antony',age:20,id:6},
{name:'Kevin',age:10,id:7}]"

我以这种方式使用JSON序列化程序解析了JSON字符串数组。

DIM mj() as mysample
dim js as new javascriptserializer
mj=js.deserialize(Of mysample)(d)

但我的要求是根据条件将该json对象的一个​​属性值转换为字符串数组。例如,结果数组应包含年龄 20的所有名称

The array should be   ['Antony','Alex']

如何在没有任何循环的情况下实现这一点。我的意思是使用LINQ的一些解决方案

1 个答案:

答案 0 :(得分:0)

您可以使用json中找到的属性创建一个类,然后使用像newtonsoft这样的库,使用新类将json清除为对象列表

    public class Person{

    public string name {get;set;}
    public string age {get;set;}


}

List<Person> personList = JsonConvert.DeserializeObject<List<Person>>(jsonString);

然后使用此列表运行linq以查找年龄= 20

的linq
List<string> result = from personList.select(new {age = age}).where(p => p.age == 20)

此代码不仅仅是为了提供结果指南而进行测试。