我有像这样的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的一些解决方案
答案 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
的linqList<string> result = from personList.select(new {age = age}).where(p => p.age == 20)
此代码不仅仅是为了提供结果指南而进行测试。