Maison > développement back-end > Tutoriel C#.Net > Comment extraire des données JSON imbriquées multicouches dans asp.net

Comment extraire des données JSON imbriquées multicouches dans asp.net

高洛峰
Libérer: 2017-02-10 17:03:57
original
1508 Les gens l'ont consulté

Cet article présente principalement la méthode d'asp.net pour extraire des données json imbriquées multicouches. Il analyse en détail les étapes et les compétences opérationnelles associées d'asp.net pour analyser les données au format json sous forme d'exemples. valeur de référence. Les amis dans le besoin peuvent se référer à

Cet article décrit la méthode d'extraction de données json imbriquées multicouches dans asp.net. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Extraire json comme ceci dans .net 2.0 :

Copiez le code Le code est comme suit :

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

Espace de noms de référence :

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
Copier après la connexion

Vous pouvez considérer le JSON ci-dessus comme un objet. Il vous suffit d'écrire la classe correspondante

.
public class UserInfo
{
public string name;
public int age;
public address addr;
}
public class address
{
public string city;
public string province;
}
Copier après la connexion

Ensuite, écrivez ceci dans la zone d'analyse :

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

Pour obtenir la valeur de City, il suffit : user.addr.City;

Il peut être implémenté de cette façon

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();
Copier après la connexion

Comment ce json peut-il être dynamique ? Par exemple, laissez-vous saisir un json, tel que

Copier le code Le code est le suivant :

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

vous permet ensuite de saisir un objet, tel que la ville, puis le système affichera la valeur de Guangzhou. Dans ce cas, json est généré dynamiquement. Oui, j'aimerais savoir s'il existe un moyen de lire un tel json. (Notez que json est imbriqué à plusieurs niveaux.)

Utilisez simplement la traversée

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;
}
Copier après la connexion

lors de l'appel :

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

S'il existe plusieurs niveaux de tableaux imbriqués

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"]);
Copier après la connexion

JSON vers XML :

Copier le code Le code est le suivant :

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

Pour plus d'articles liés à la méthode asp.net d'extraction de données json imbriquées multicouches, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal