0

JSONファイルパーサーを構築しています。現在、JavaScriptSerializer クラスを使用して、JSON ファイルを次のような DynamicJsonObject に読み込みます。

dynamic glossaryEntry

次に、次の方法で最上位の json ノードを取得できます。次のような Scoring と呼ばれるこの JSON グループを取得するため

{
    "Scoring":
    [
        {
            "blah": "blah",
            "blah": "blah"      
        },
        {
            "blah": "blah",
            "blah": "blah"      
        }   
    ]
}

私は動的表現を使用します:

return glossaryEntry.Scoring;

または、たとえば、私は使用します

return glossaryEntry.quests;

次のような JSON の場合:

{
    "quests":
    [
        ... 
    ]
}

これは非常にハードコーディングされており、解析可能なすべての識別子を事前に知っておく必要があります。動的な式を何かに評価して、glossaryEntry."this" の部分を実行時に決定できるようにする方法が必要だと思いますか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

json文字列をデシリアライズできますDictionary<string,object>

var glossaryEntry = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(json);
var keys = glossaryEntry.Keys.ToList();

var scoring1 = glossaryEntry["Scoring"];
//OR
var scoring2 = glossaryEntry[keys[0]];
于 2012-08-01T11:34:53.567 に答える