2016-09-01 24 views
-5

NewtonsoftをJSONデータの逆シリアル化をテストしようとしています。私はjsonオブジェクトの配列を作成し、それらを逆直列化したいと思っていました。例えばC#でオブジェクトの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); 

私の目的は、JSONのARAYのPFオブジェクトを作成し、そのクラスにそれらをデシリアライズISTO試してみました何

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

    public string thing2 
    { 
     get; 
     set; 
    } 
} 

var json = ?????? 

。私はNewtonsoft.Jsonを使用して非直列化しています。ここ

+0

オッズは構文エラーです。構文エラーメッセージの内容は何ですか? –

+0

@Sam、上記のjsonデータを逆シリアル化できますか? – user2465036

+0

まあ、私は '私は上記のjsonデータを逆シリアル化することは可能ですか? 'という文法エラーが出てきたことはないので、何が起こっているのか分かりません。 –

答えて

1

問題は、JSON文字列のように見える:

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

はまず、DeserializeObjectメソッドは、パラメータとして文字列を期待しています。 第2に、JSONではキー名を引用符で囲む必要があります。 第三に、キー/値ペアのためのJSONの構文は、キーです:値ではない=キー値

ための正しい構文は次のようになります。

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

乾杯!

0

は、私はあなたがこのsintax使用しようとすべきだと思う:私は白に最も簡単だと思います

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); 
関連する問題