Im Prinzip habe ich dieses JSON und ich muss die „Id“ erhalten auf der Grundlage der „Benutzer-ID“Holen Sie sich ein JSON-Objekt basierend auf einer seiner Werte
[
{
"Userid": 2,
"Id": 99999
},
{
"Userid": 4,
"Id": 55555
}
]
Ich brauche das JSON-Objekt auf der Basis auswählen "Benutzeridentifikation".
Wie würde ich das tun?
ich diesen Thread verwendet: Json.Net Select Object based on a value
Die Lösung war:
string json = @"
{
wvw_matches: [
{
wvw_match_id: ""1-4"",
red_world_id: 1011,
blue_world_id: 1003,
green_world_id: 1002,
start_time: ""2013-09-14T01:00:00Z"",
end_time: ""2013-09-21T01:00:00Z""
},
{
wvw_match_id: ""1-2"",
red_world_id: 1017,
blue_world_id: 1021,
green_world_id: 1009,
start_time: ""2013-09-14T01:00:00Z"",
end_time: ""2013-09-21T01:00:00Z""
}
]
}";
string matchIdToFind = "1-2";
JObject jo = JObject.Parse(json);
JObject match = jo["wvw_matches"].Values<JObject>()
.Where(m => m["wvw_match_id"].Value<string>() == matchIdToFind)
.FirstOrDefault();
if (match != null)
{
foreach (JProperty prop in match.Properties())
{
Console.WriteLine(prop.Name + ": " + prop.Value);
}
}
Aber da mein kein "wvw_matches" hat (keine Ahnung, was es zu nennen), das tue ich nicht verstehe, wie ich es in meiner Situation anwenden würde.
'jo.Values () .Where (. M => m [ "Userid"] Wert () == matchIdToFind) .FirstOrDefault();'? –
GSerg
'var str = Datei.ReadAllText (" E: /User.json "); Zeichenfolge json = $ "{str}"; JObject jo = JObject.Parse (json); Zeichenfolge matchIdToFind = "1"; JObject match = jo.Values () .Wobei (m => m ["Benutzer-ID"]. Wert () == matchIdToFind) .FirstOrDefault(); if (Spiel! = Null) { foreach (JProperty prop in match.Properties()) { Console.WriteLine (prop.Name + ":" + prop.Value); } } 'dies wirft den Fehler: –
datuhaccz
' string json = $ "{str}"; '? Welche Schritte haben Sie unternommen, um herauszufinden, was 'File.ReadAllText()' zurückgibt? –