Ich habe eine JSON-Datei mit dieser Struktur:Wie erhält man ein Attribut von einem deserialisierten verschachtelten Objekt?
{
"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"}]
}
Danach habe ich das Attribut jedes Objekts in den Daten erhalten möchten. Also hier ist mein Code so weit:
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; }
}
}
Ich würde wirklich geschätzt werden, wenn mir jemand dabei helfen kann. Außerdem ist es wichtig, alle Objekteigenschaften zu einer Liste hinzuzufügen und zu verknüpfen. Ich stecke den Moment fest.
Beispiel: ListBox1: personID: person1, person2, Person3 ListBox2: Name/Alter/Höhe/Hobby TextBox3: Ausgabeattribut
Vielen Dank!
UPDATE: Ich habe in der Dunkelheit suchen und bis jetzt ist es das, was ich
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; }
}
}
OUTPUT-Konsole erhalten: Name: Bobby Alter: 25 Größe: 178 Hobbys: Klavier
Ja, Ihre erwähnten Struktur der Norm zu verwenden ist. Deshalb brauchte ich eine Woche ohne Fortschritt. Die JSON-Datei wird nicht von mir erstellt, sie stammt aus meinen Hausaufgaben-JSON-Daten von einer Website. Ich habe den Inhalt in "Person" geändert, um die Stapelverarbeitung zu vereinfachen. Anstatt ein Array von [a, b, c] zu verwenden, benutzte er [{a}, {b}, {c}], was ein Array von Objekten ist. Ich kann meine JSON-Struktur nicht ändern, weil ich Live-Daten von ihm erhalten muss ... –
Nein, er hat kein Array von Objekten verwendet. Er hat drei Arrays benutzt. Ich kann meine Antwort aktualisieren, um die verbleibende Struktur zu behalten, aber es scheint mir seltsam. – Dec
Bitte helfen Sie mir, ich weiß nicht, warum seine Struktur so dumm aussieht. Ich habe Fortschritte gemacht. Lass es uns sehen –