0

次のようにjsonを逆シリアル化する必要があります。

[[[[{"string1":"AB","date1":"01/01/1900 8:59:00","date2":"01/01/1900 9:28:00","col":["VO","SC","VD","LF","SR","TT","BN","MM","HH","HH","YY","ZZ"]}],[{"string1":"AB","date1":"01/01/1900 9:02:00","date2":"01/01/1900 9:30:00","col":["VO","SC","VD","LF","LP","VV","FF","MM","HH","HH","YY","ZZ"]}]]]]

私は次のコードで試しました:

JavaScriptSerializer serializer = new JavaScriptSerializer();
        js = new JavaScriptSerializer();
        var d = js.Deserialize<dynamic>(json);

しかし、何かが欠けていて、情報を正しく取得できません。

4

2 に答える 2

3

配列の配列の配列の配列の配列。純粋なエンジニアリングの天才がこのデータ構造を設計したに違いありません。

とにかく、デシリアライズしてそのプロパティにアクセスする方法は次のとおりです。

string json = "[[[[{\"string1\":\"AB\",\"date1\":\"01/01/1900 8:59:00\",\"date2\":\"01/01/1900 9:28:00\",\"col\":[\"VO\",\"SC\",\"VD\",\"LF\",\"SR\",\"TT\",\"BN\",\"MM\",\"HH\",\"HH\",\"YY\",\"ZZ\"]}],[{\"string1\":\"AB\",\"date1\":\"01/01/1900 9:02:00\",\"date2\":\"01/01/1900 9:30:00\",\"col\":[\"VO\",\"SC\",\"VD\",\"LF\",\"LP\",\"VV\",\"FF\",\"MM\",\"HH\",\"HH\",\"YY\",\"ZZ\"]}]]]]";
JavaScriptSerializer serializer = new JavaScriptSerializer();
var d = serializer.Deserialize<dynamic>(json);

foreach (dynamic item in d[0][0][0])
{
    Console.WriteLine(item["string1"]);
    Console.WriteLine(item["date1"]);
    Console.WriteLine(item["date2"]);
    ...
}
于 2013-07-16T11:08:53.303 に答える
0

あなたのjsonは有効です

[
    [
        [
            [
                {
                    "string1": "AB",
                    "date1": "01/01/1900 8:59:00",
                    "date2": "01/01/1900 9:28:00",
                    "col": [
                        "VO",
                        "SC",
                        "VD",
                        "LF",
                        "SR",
                        "TT",
                        "BN",
                        "MM",
                        "HH",
                        "HH",
                        "YY",
                        "ZZ"
                    ]
                }
            ],
            [
                {
                    "string1": "AB",
                    "date1": "01/01/1900 9:02:00",
                    "date2": "01/01/1900 9:30:00",
                    "col": [
                        "VO",
                        "SC",
                        "VD",
                        "LF",
                        "LP",
                        "VV",
                        "FF",
                        "MM",
                        "HH",
                        "HH",
                        "YY",
                        "ZZ"
                    ]
                }
            ]
        ]
    ]
]

jsonlint.comで確認します

ネストされた配列があるため、問題があると思います。

于 2013-07-16T11:10:07.253 に答える