Heim  >  Artikel  >  Backend-Entwicklung  >  So extrahieren Sie mehrschichtige verschachtelte JSON-Daten in asp.net

So extrahieren Sie mehrschichtige verschachtelte JSON-Daten in asp.net

高洛峰
高洛峰Original
2017-02-10 17:03:571491Durchsuche

In diesem Artikel wird hauptsächlich die Methode von asp.net zum Extrahieren mehrschichtiger verschachtelter JSON-Daten vorgestellt. Er analysiert detailliert die Schritte und zugehörigen Betriebsfähigkeiten von asp.net zum Parsen von Daten im JSON-Format Referenzwert. Freunde in Not können sich auf

Dieser Artikel beschreibt die Methode zum Extrahieren mehrschichtiger verschachtelter JSON-Daten in asp.net. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Extrahieren Sie JSON wie folgt in .net 2.0:

Kopieren Sie den Code Der Code ist wie folgt:

{"name":"lily", "age":23,"addr":{"city":guangzhou,"province":guangdong}}

Referenz-Namensraum :

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

Sie können sich das obige JSON als Objekt vorstellen. Sie müssen nur die entsprechende Klasse schreiben

public class UserInfo
{
public string name;
public int age;
public address addr;
}
public class address
{
public string city;
public string province;
}

Dann schreiben Sie dies in den Parsing-Bereich:

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));

Um den Wert von City zu erhalten, gehen Sie einfach wie folgt vor: user.addr.City;

Es kann auf diese Weise implementiert werden

JObject jsonObj = JObject.Parse(jsonData);
string name=jsonObj ["name"].ToString();
string age=jsonObj ["age"].ToString();
string city=((JObject )jsonObj ["addr"])["city"].ToString();
string province=((JObject )jsonObj ["addr"])["province"].ToString();

Wie kann dieser JSON dynamisch sein? Sie können beispielsweise einen JSON-Code eingeben, z. age":23," addr":{"city":guangzhou,"province":guangdong}};

ermöglicht Ihnen dann die Eingabe eines Objekts, z. B. einer Stadt, und dann gibt das System den Wert aus In diesem Fall wird JSON dynamisch generiert. Ja, ich würde gerne wissen, ob es eine Möglichkeit gibt, solchen JSON zu lesen. (Beachten Sie, dass JSON auf mehreren Ebenen verschachtelt ist.)

Verwenden Sie beim Aufruf einfach Traversal

:

public string GetJsonValue(JEnumerable<JToken> jToken,string key)
{
IEnumerator enumerator = jToken.GetEnumerator();
while (enumerator.MoveNext())
{
JToken jc = (JToken)enumerator.Current;
if (jc is JObject||((JProperty)jc).Value is JObject)
{
return GetJsonValue(jc.Children(), key);
}
else
{
if (((JProperty)jc).Name == key)
{
return ((JProperty)jc).Value.ToString();
}
}
}
return null;
}

Wenn es mehrere Ebenen verschachtelter Arrays gibt

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));

JSON zu XML:

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);
Code kopieren

Der Code lautet wie folgt:

string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();

Weitere Artikel zur asp.net-Methode zum Extrahieren mehrschichtiger verschachtelter JSON-Daten finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn