2017-01-25 18 views
0

私は、サードパーティから次のようなJSON文字列を受け取る:は、C#でJSON文字列をデシリアライズすることはできません

public class testCh 
{ 
    public int i { get; set; } 
    public string m { get; set; } 
    public object u { get; set; } 
    public int d { get; set; } 
    public double z { get; set; } 
    public string yi { get; set; } 
    public string ya { get; set; } 
    public int a { get; set; } 
    [JsonIgnore] 
    public int s { get; set; } 
    [JsonIgnore] 
    public string data { get; set; } 

} 

public class testRootObject 
{ 
    public List<testCh> tCh { get; set; } 
} 

そして最後に、私は私のメインでこれを試してみてください。

{ 
    "Ch": [{ 
     "i": 100, 
     "m": "Time", 
     "u": "(sec)", 
     "d": 0, 
     "z": 0.345313, 
     "yi": "0.000000", 
     "ya": "6.906250", 
     "a": 0, 
     "s": 1664, 
     "data": "RN]]>" 
    }, { 
     "i": 101, 
     "m": "Stress", 
     "u": "(kPa)", 
     "d": 0, 
     "z": 60, 
     "yi": "0.000000", 
     "ya": "1200.000000", 
     "a": 0 
    }, { 
     "i": 102, 
     "m": "Strain", 
     "u": "(micro e)", 
     "d": 0, 
     "z": 8, 
     "yi": "200.000000", 
     "ya": "360.000000", 
     "a": 0 
    }, { 
     "i": 103, 
     "m": "Stress", 
     "u": 360, 
     "d": 0, 
     "z": 0, 
     "yi": "0.000000", 
     "ya": "0.000000", 
     "a": 0, 
     "s": 1664, 
     "data": "QVORR`Pb_UQRR</code>OObTNRRUTaWRVRRSaPQPdRRaPNSORRR]]>" 
    }, { 
     "i": 104, 
     "m": "Strain", 
     "u": 360, 
     "d": 0, 
     "z": 0, 
     "y": 0, 
     "yi": "0.000000", 
     "ya": "0.000000", 
     "a": 1, 
     "s": 1664, 
     "data": "SVdRQSP_VWQRQa]]>" 
    }] 
} 

は、私は次のクラスを使用しますクラス:

var response1 = JsonConvert.DeserializeObject<testRootObject>(content1); 

foreach (testCh tc in response1.tCh) 
{ 
    string name = tc.m; 
} 

私は空testRootObject []

を得ますか私は私のtestCHクラスの「A」と「データ」を無視しようとしました

[JsonIgnore] 
public int s { get; set; } 

[JsonIgnore] 
public string data { get; set; } 

、それは動作しませんでした。

なぜ私はそれを逆シリアル化できないのか分かりません。それは愚かなものでなければなりませんが、カップルの日の後に私はそれを見ることができません。

ご迷惑をおかけして申し訳ございません。

+0

してください、あなたのJSONをフォーマットします。 –

+4

'testRootObject'クラスの' tCh'プロパティの名前を 'Ch'に変更してみてください。 –

+0

オブジェクトの同じ名前を試してください... c#クラスとjsonで。それは一致する名前を探すためです。 –

答えて

0

これを確認して確認しました。唯一のエラーは、リストオブジェクトの名前です。あなたのJSON文字列のように、Chにする必要があります。

public class testRootObject 
{ 
    public List<testCh> Ch { get; set; } 
} 

そのプロパティ名を使用すると、次の操作を行うことができるよりtChでなければならないこと絶対必要である場合:

public class testRootObject 
{ 
    [JsonProperty("Ch")] 
    public List<testCh> tCh { get; set; } 
} 
+0

ありがとうございました! :D – DanielaTahnee

関連する問題