2016-09-01 2 views
-5

Я пытаюсь проверить десериализацию Newtonsoft данных JSON. Я хотел создать массив json-объектов и десериализовать их.Как создать и сохранить массив json объектов в C#

Например

Мой код:

public class TestJson 
{ 
    public string thing1 
    { 
     get; 
     set; 
    } 

    public string thing2 
    { 
     get; 
     set; 
    } 
} 

var json = ?????? 

То, что я пытался

var json = [{thing1:"f",thing2="x"},{thing1:"c",thing2="bx"}]; 

//The above line is givig compiler error in C# 

List <TestJson> exam = new List<TestJson>(); 
exam = JsonConvert.DeserializeObject<List<TestJson>>(json); 

Моя цель ISTO создать JSON Арай пФ объектов, а затем десериализации их класса. Я использую Newtonsoft.Json для десериализации.

+0

Скорее всего, вы получили синтаксическую ошибку. Что говорит сообщение об ошибке синтаксиса? –

+0

@Sam, можно ли десериализовать вышеупомянутые данные json? – user2465036

+0

хорошо, я никогда не сталкивался с ошибкой синтаксиса «Я могу удалить десериализацию вышеупомянутых json-данных?», Поэтому я не уверен, что происходит. –

ответ

1

Проблема здесь, как представляется, строка JSON:

var json = [{thing1:"f",thing2="x"},{thing1:"c",thing2="bx"}]; 

Во-первых, метод DeserializeObject ожидает строку в качестве параметра. Во-вторых, JSON требует, чтобы имена ключей были окружены кавычками. В-третьих, JSON синтаксис для пар ключ/значение имеет ключевое значение: значение не ключ = значение

Поэтому правильный синтаксис будет:

var json = "[{ \"thing1\": \"f\",\"thing2\" : \"x\"},{ \"thing1\": \"c\",\"thing2\" : \"bx\"}]"; 

Ура!

0

Я думаю, вы должны попробовать использовать этот синтаксис:

string json = @"[{'thing1':'a1', 'thing2':'a2'}, {'thing1':'b1', 'thing2':'b2'}, {'thing1':'c1', 'thing2':'c2'}]"; 

Я думаю, что это самое простое белые этот путь, и для заданного значения вы должны использовать «:», а не «=», как в (thing2 = "x")

Я надеюсь вам помочь.

1

Вы можете использовать Newtonsoft JSON для сериализации и десериализации, после инициализации объекта. Простой пример:

TestJson[] testArr = new TestJson[] { new TestJson() { thing1 = "a1", thing2 = "a2" }, 
             new TestJson() { thing1 = "b1", thing2 = "b2" } 
            }; 
string json = JsonConvert.SerializeObject(testArr); 
//Serialized string is: [{"thing1":"a1","thing2":"a2"},{"thing1":"b1","thing2":"b2"}] 
TestJson[] newObject = JsonConvert.DeserializeObject<TestJson[]>(json); 
Смежные вопросы