Распарсить json и записать полученные данные в массив - C#
Формулировка задачи:
Прочитал статью где такой json Преобразовывается в c# таким образом:
А что если их будет несколько:
Как это конвертировать в массив экземпляров?
{ "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] }
public class Person { public string firstName { get; set; } public string lastName { get; set; } public Address address { get; set; } public string[] phoneNumbers { get; set; } public class Address { public string streetAddress { get; set; } public string city { get; set; } public int postalCode { get; set; } } } DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Person)); string fileContent=System.IO.File.ReadAllText("json.txt"); Person person = (Person)json.ReadObject(new System.IO.MemoryStream(Encoding.UTF8.GetBytes(fileContent)));
{ users: [ { firstName: "Иван", lastName: "Иванов", address: { streetAddress: "Московское ш., 101, кв.101", city: "Ленинград", postalCode: 101101 }, phoneNumbers: [ "812 123-1234", "916 123-4567" ] }, { firstName: "Михаил", lastName: "Михайлов", address: { streetAddress: "Московское ш., 201, кв.200", city: "Москва", postalCode: 201201 }, phoneNumbers: [ "712 123-1234", "716 123-4567" ] } ] }
Решение задачи: «Распарсить json и записать полученные данные в массив»
textual
Листинг программы
using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.Text; class Program { private static void Main(string[] args) { DataContractJsonSerializer json1 = new DataContractJsonSerializer(typeof(Foo)); string fileContent = File.ReadAllText("zzz.txt", Encoding.Default); Foo person = (Foo)json1.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(fileContent))); // Foo person = (Foo) json1.ReadObject(GenerateStreamFromString(s)); } static public Stream GenerateStreamFromString(string s) { MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(s); writer.Flush(); stream.Position = 0; return stream; } } [DataContract] class Foo { [DataMember] public List<User> users { get; set; } } [DataContract] class User { [DataMember] public string firstName { get; set; } [DataMember] public string lastName { get; set; } //[DataMember(Name = "address")] //public Dictionary<string, string> address { get; set; } [DataMember(Name = "address")] public Address address { get; set; } [DataMember] public List<string> phoneNumbers { get; set; } } [DataContract] class Address { [DataMember] public string streetAddress { get; set; } [DataMember] public string city { get; set; } [DataMember] public int postalCode { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д