我有这个结构的JSON文件:如何从反序列化的嵌套对象获取属性?
{
"person1": [{"name": "Bobby"}, {"age": 25}, {"height": 178}, {"hobby": "piano"}],
"person2": [{"name": "Tyler"}, { "age": 29}, {"height": 185}, {"hobby": "basketball"}],
"person3": [{"name": "Mike"}, {"age": 30}, {"height": 192}, {"hobby": "football"}]
}
后,我想在每一个数据对象的属性。所以这里是我的代码到目前为止:
JObject json = JObject.Parse(File.ReadAllText(*JSON file*));
jsonString = json.ToString();
RootObject data = JsonConvert.DeserializeObject<RootObject>(jsonString);
//Needed code here
Console.Writeline(*hobby of Tyler*)
Console.ReadKey();
}
}
//====================================JSON class======================================
public class Person1
{
public string name { get; set; }
public Int16 age { get; set; }
public Int16 height { get; set; }
public string hobby { get; set; }
}
public class Person2
{
public string name { get; set; }
public Int16 age { get; set; }
public Int16 height { get; set; }
public string hobby { get; set; }
}
public class Person3
{
public string name { get; set; }
public Int16 age { get; set; }
public Int16 height { get; set; }
public string hobby { get; set; }
}
public class RootObject
{
public List<Person1> person1 { get; set; }
public List<Person2> person2 { get; set; }
public List<Person3> person3 { get; set; }
}
}
如果有人可以帮助我这个,我将非常感激。此外,要将所有对象属性添加到列表中并将它们绑定也非常重要。我困在当下。
举例: ListBox1中:PERSONID:PERSON1,PERSON2,Person3可能 ListBox2:姓名/年龄/身高/爱好 TextBox3:输出属性
谢谢!
更新:我已经在黑暗中,直到目前正在寻找这是我得到
class Program
{
public static string url = @"C:\Users\Admin\Desktop\getData3.json";
public static string jsonString = "";
static void Main(string[] args)
{
JObject json = JObject.Parse(File.ReadAllText(url));
jsonString = json.ToString();
//==========Second Method=======================================
Console.WriteLine("==============================================================");
Console.Write("name: "+ person.person1[0].name);
Console.Write(" age: "+ person.person1[1].age);
Console.Write(" height: "+ person.person1[2].height);
Console.WriteLine(" hobby: "+ person.person1[3].hobby);
Console.ReadKey();
}
}
//CLass===================================
public class Person
{
public string name { set; get; }
public int age { set; get; }
public int height { set; get; }
public string hobby { set; get; }
}
public class RootObject
{
public List<Person> person1 { get; set; }
public List<Person> person2 { get; set; }
public List<Person> person3 { get; set; }
}
}
输出控制台:角色:Bobby年龄:25身高:178爱好:钢琴
呀,你所提到的结构标准。这就是为什么我花了一个星期没有进步。 JSON文件不是由我创建的,它来自我网站上的家庭作业JSON数据。我将其内容更改为“人员”以便于堆栈回答。他使用的[{a},{b},{c}]是一组对象,而不是使用[a,b,c]数组。我无法更改我的JSON结构,因为我必须从中获取实时数据... –
不,他没有使用过一组对象。他已经使用了三个阵列。我可以更新我的答案以保留其余结构,但对我来说似乎很奇怪。 – Dec
请帮助我,我不知道为什么他的结构看起来很愚蠢。 我有一些进展。让我们来看看 –