Подтвердить что ты не робот

Преобразовать json в массив С#?

Кто-нибудь знает, как преобразовать строку, содержащую json в массив С#. У меня есть это, которое читает текст /json из webBrowser и сохраняет его в строке.

string docText = webBrowser1.Document.Body.InnerText;

Просто нужно как-то изменить эту строку json в массив. Я смотрел Json.NET, но я не уверен, что это мне нужно, поскольку я не хочу менять массив на json; но наоборот. Спасибо за помощь!

4b9b3361

Ответ 1

просто возьмите строку и используйте JavaScriptSerializer для десериализации ее в собственный объект. Например, имея этот json:

string json = "[{Name:'John Simith',Age:35},{Name:'Pablo Perez',Age:34}]"; 

Вам нужно создать класс С#, называемый, например, Person, определенным так:

public class Person
{
 public int Age {get;set;}
 public string Name {get;set;}
}

Теперь вы можете десериализовать строку JSON в массив Person, выполнив:

JavaScriptSerializer js = new JavaScriptSerializer();
Person [] persons =  js.Deserialize<Person[]>(json);

Здесь ссылка на документацию JavaScriptSerializer.

Примечание: мой код выше не был протестирован, но идея протестировала его. Если вы не делаете что-то "экзотическое", вам должно быть хорошо, используя JavascriptSerializer.

Ответ 2

Да, Json.Net - это то, что вам нужно. Вы в основном хотите десериализовать строку Json в массив objects.

Смотрите их примеры:

string myJsonString = @"{
  "Name": "Apple",
  "Expiry": "\/Date(1230375600000+1300)\/",
  "Price": 3.99,
  "Sizes": [
    "Small",
    "Medium",
    "Large"
  ]
}";

// Deserializes the string into a Product object
Product myProduct = JsonConvert.DeserializeObject<Product>(myJsonString);

Ответ 3

using Newtonsoft.Json;

Установить этот класс в консоли пакета Этот класс отлично работает во всех версиях .NET, например, в моем проекте: у меня есть DNX 4.5.1 и DNX CORE 5.0, и все работает.

Во-первых, перед десериализацией JSON вам нужно объявить класс, который будет нормально читать, и хранить некоторые данные где-то Это мой класс:

 public class ToDoItem
            {
                public string text { get; set; }
                public string complete { get; set; }
                public string delete { get; set; }
                public string username { get; set; }
                public string user_password { get; set; }
                public string eventID { get; set; }
             //   public string name { get; set; }


            }

В разделе HttpContent, где вы запрашиваете данные по запросу GET например:

HttpContent content = response.Content;
string mycontent = await content.ReadAsStringAsync();
//deserialization in items
ToDoItem[] items = JsonConvert.DeserializeObject<ToDoItem[]>(mycontent);