0

私はWPの初心者開発者です。json データの解析に問題があります。サーバーから取得し、JSON.Net で解析します。

JSON データの例

{"response":
     {"ad6a95dd8f90fad7e281994cb5a8cacd":
           {"status":"offline", "name": "Test Name",
            "id":"ad6a95dd8f90fad7e281994cb5a8cacd"}
     }
 "success":true
}

「応答」の第 1 子は、サーバーへの要求ごとに異なります。「名前」フィールドの値を抽出するにはどうすればよいですか?! (前もって)ご返信に感謝いたします。

私は Page.xaml.cs でそれを試します

var o = JObject.Parse(result);
        var id = o["response"].First;
        ServerList.ItemsSource = id;

そして Page.xaml で

<ScrollViewer Foreground="White">
                        <ListBox Margin="0,0,-12,0" Name="ServerList" Height="508" Width="415">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Margin="0,0,0,20" Width="300">
                                        <TextBlock Text="{Binding Path=name}" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </ScrollViewer>

私は例によってそれをしました。

4

1 に答える 1

1

nameその Json から値を取得するために、次のようにしました。

var o = JObject.Parse(result);
var id = o["response"].First.First["name"];
string name = id.Value<string>();

実際にこの操作を次のような応答の配列に対して実行しようとしている場合:

{"responses":
    [
        {"response":
            {"ad6a95dd8f90fad7e281994cb5a8cacd":
                {"status":"offline", "name": "Test Name","id":"ad6a95dd8f90fad7e281994cb5a8cacd"} },"success":true },
        {"response":
            {"ad6a95dd8f90fad7e281994cb5a8cacd":
                {"status":"offline", "name": "Test Name2","id":"ad6a95dd8f90fad7e281994cb5a8cacd"} }, "success":true }
    ]
}

次に、コードは次のようになります。

var o = JObject.Parse(result);
var ids = from c in o["responses"].Children() select c["response"].First.First;
var names = ids.Select(t => t.SelectToken("name").Value<string>());
于 2012-10-20T06:53:28.323 に答える