Was ist der Unterschied zwischen JsonConvert.DeserializeObject und JObject.Parse? Soweit ich das beurteilen kann, nehmen beide eine Zeichenfolge und sind in der Json.NET-Bibliothek. Welche Art von Situation würde einen bequemer als den anderen machen, oder ist es hauptsächlich nur Vorliebe?JObject.Parse vs JsonConvert.DeserializeObject
als Referenz, hier ist ein Beispiel für mich beide genau das Gleiche zu tun mit - einen JSON-String analysiert und eine Liste von einem der Json-Attribute.
public ActionResult ReadJson()
{
string countiesJson = "{'Everything':[{'county_name':null,'description':null,'feat_class':'Civil','feature_id':'36865',"
+"'fips_class':'H1','fips_county_cd':'1','full_county_name':null,'link_title':null,'url':'http://www.alachuacounty.us/','name':'Alachua County'"+ ",'primary_latitude':'29.7','primary_longitude':'-82.33','state_abbreviation':'FL','state_name':'Florida'},"+
"{'county_name':null,'description':null,"+ "'feat_class':'Civil','feature_id':'36866','fips_class':'H1','fips_county_cd':'3','full_county_name':null,'link_title':null,'url':'http://www.bakercountyfl.org/','name':'Baker County','primary_latitude':'30.33','primary_longitude':'-82.29','state_abbreviation':'FL','state_name':'Florida'}]}";
//Can use either JSONParseObject or JSONParseDynamic here
List<string> counties = JSONParseObject(countiesJson);
JSONParseDynamic(countiesJson);
return View(counties);
}
public List<string> JSONParseObject(string jsonText)
{
JObject jResults = JObject.Parse(jsonText);
List<string> counties = new List<string>();
foreach (var county in jResults["Everything"])
{
counties.Add((string)county["name"]);
}
return counties;
}
public List<string> JSONParseDynamic(string jsonText)
{
dynamic jResults = JsonConvert.DeserializeObject(jsonText);
List<string> counties = new List<string>();
foreach(var county in jResults.Everything)
{
counties.Add((string)county.name);
}
return counties;
}
Vielen Dank für die gut durchdachte Antwort! Die Object vs Dynamic Deskriptoren sind jetzt sinnvoll. Das Beispiel, das Sie geben, ist auch großartig - das sieht viel einfacher aus als mit JsonParseDynamic. – hubatish
Kein Problem; froh, dass ich helfen konnte! –
Ich wünschte, dies wäre in der [offiziellen Dokumentation] (http://www.newtonsoft.com/json/help/html/serializingjson.htm). –