使用不同的键值解析 Json 数组
本文关键字:Json 数组 键值 | 更新日期: 2023-09-27 18:34:31
在我的一个项目中,我想解析一个具有不同键名的 JSON 数组。例如
{ "details": [
{ "state": "myState1",
"place": [
{ "name": "placeName" } ] },
{ "state": "myState2",
"place": [
{ "name1": "placeName" } ] },
{ "state": "myState3",
"place": [
{ "name2": "placeName" } ] } }
所以在这个JSON中,请查看place数组。 每次键像名称1,名称2,名称3...,.而且没有必要一直获取相同的JSON。在某些时候只有状态 1 或状态 1 和状态 3,在某些时间只有状态 1 到状态 50。
那么我如何从这个数组中识别和解析确切的数据
首先,你的JSON格式不正确。您错过了最后一个右大括号]
}
之前的右方括号。
然后,不能将变量名属性解析为静态类,但可以将它们转换为字典。下面是使用变量places
的映射类的示例:
public class Details
{
public string state { get; set; }
public List<Dictionary<string, string>> place { get; set; }
}
public class Wrap
{
public Details[] details { get; set; }
}
static void Main(string[] args)
{
string txt = File.ReadAllText("MyJSONFile.txt");
JavaScriptSerializer ser = new JavaScriptSerializer();
var data = ser.Deserialize<Wrap>(txt);
}
如果 place
属性也会更改名称,我认为解析它的最简单方法是使用以下非常松散类型的类:
public class Wrap
{
public List<Dictionary<string,object>> details { get; set; }
}
其中,字典中的对象将根据 JSON 中的值成为字符串或属性字典。