Maison >développement back-end >Tutoriel C#.Net >Explication détaillée de la méthode ASP.NET d'extraction de données JSON imbriquées multicouches
Cet article présente principalement la méthode d'ASP.NET pour extraire les données json imbriquées multicouches, et la méthode d'utilisation de la bibliothèque de classes tierce Newtonsoft.Json pour extraire les données json imbriquées multicouches. Ceux qui sont intéressés peuvent le faire. en apprendre davantage.
L'exemple de cet article décrit la méthode d'ASP.NET utilisant la bibliothèque de classes tierce Newtonsoft.Json pour extraire des données json imbriquées multicouches. Les exemples spécifiques sont les suivants.
Supposons que la chaîne json qui doit être extraite est la suivante :
{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}
Citez d'abord l'espace de noms :
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
Vous pouvez considérer la chaîne json ci-dessus comme un objet, écrivez simplement la classe correspondante (si vous utilisez VS2013 pour le développement, vous pouvez utiliser "Edit--Paste Special --"JSON Coller en tant que classe" convertit rapidement les chaînes json en classes d'entités)
public class UserInfo { public string name; public int age; public address addr; } public class address { public string city; public string province; }
1 Le code pour convertir les chaînes json en objets d'entité est le suivant. suit :
string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}"; UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));
2. Pour lire la valeur d'un attribut en json, vous pouvez utiliser le code suivant :
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();
3. Interprétez le json imbriqué multicouche et obtenez la valeur de n'importe quel attribut :
Si la chaîne json qui doit être traitée est la suivante :
{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};
Ensuite, laissez-vous saisir un objet, tel que "ville", le système affichera "guangzhou", saisirez "âge", il affichera "23". ". Puisque json est imbriqué à plusieurs niveaux, il doit être parcouru un par un. Le code est le suivant :
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; }
Code pour appeler GetJsonValue :
string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}"; JObject jsonObj = JObject.Parse(jsonData); Response.Write(GetJsonValue(jsonObj.Children(), "province"));
S'il s'agit d'un tableau imbriqué à plusieurs niveaux, vous pouvez également utiliser le code suivant :
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"]);
4. JSON vers XML :
Copiez le code comme suit :
string xmlstr=(( XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)). InnerXml.ToString();
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, et j'espère également que. tout le monde soutiendra le site Web PHP chinois.
Pour des explications plus détaillées sur la façon dont ASP.NET extrait les données json imbriquées multicouches et les articles connexes, veuillez prêter attention au site Web PHP chinois !