详解ASP.NET提取多层嵌套json数据的方法
本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下。
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下。
假设需要提取的json字符串如下:
{
"name"
:
"lily"
,
"age"
:23,
"addr"
:{
"city"
:guangzhou,
"province"
:guangdong}}
先引用命名空间:
using
Newtonsoft.Json;
using
Newtonsoft.Json.Linq;
public
class
UserInfo
{
public
string
name;
public
int
age;
public
address addr;
}
public
class
address
{
public
string
city;
public
string
province;
}
string
jsonData=
"{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}"
;
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData,
typeof
(UserInfo));
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();
{
"name"
:
"lily"
,
"age"
:23,
"addr"
:{
"city"
:guangzhou,
"province"
:guangdong}};
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
;
}
string jsonData =
"{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}"
;
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(),
"province"
));
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"
]);
详解ASP.NET提取多层嵌套json数据的方法的更多相关文章
- ASP.NET提取多层嵌套json数据的方法
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...
- 提取多层嵌套Json数据
在.net 2.0中提取这样的json {"name":"lily","age":23,"addr":{"ci ...
- Gson 解析多层嵌套JSON数据
http://stackoverflow.com/questions/14139437/java-type-generic-as-argument-for-gson
- JSON的简单使用之提取多层嵌套的JSON(C#)
JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?) 反序列 ...
- 详解ASP.NET MVC 控制器
1 概述 在阅读本篇博文时,建议结合上篇博文:详解ASP.NET MVC 路由 一起阅读,效果可能会更好些. Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务端的 ...
- 三张图片详解Asp.Net 全生命周期
用三张图片详解Asp.Net 全生命周期 下面我们使用三张图片解析ASP.net的整个生命周期,我总感觉使用图片更加的清楚的说明这种问题,所以使用的这样方式 说明: 1 第一张图片从全局说明从客户端 ...
- 【Java_Spring】java解析多层嵌套json字符串
java解析多层嵌套json字符串
- 详解OJ(Online Judge)中PHP代码的提交方法及要点【举例:ZOJ 1001 (A + B Problem)】
详解OJ(Online Judge)中PHP代码的提交方法及要点 Introduction of How to submit PHP code to Online Judge Systems Int ...
- ASP.NET Core中返回 json 数据首字母大小写问题
ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...
随机推荐
- 网络编程入坑基础-BIO总结
IO总结 前提 参考资料: <Java I/O> -- 这本书没有翻译版,需要自己啃一下. <Java I/O>这本书主要介绍了IO和NIO的相关API使用,但是NIO部分并不 ...
- 更新node版本
步骤如下:1.查看当前的node版本 node -v 2.清除npm当前缓存信息 npm cache clean -f 3.执行下载node npm install -g n 4.下载成功后执行安装 ...
- 【DB2】NVL2函数
语法: NVL2(表达式1,表达式2,表达式3) 如果表达式1为空,返回值为表达式3的值.如果表达式1不为空,返回值为表达式2的值. 例子: SELECT ID, NVL2(SEX,'非空','空值' ...
- maven的profile 目录、变量打包
<project> <build> <finalName>maven-project</finalName> <resources> < ...
- 使用 Gradle 实现一套代码开发多个应用
代码地址如下:http://www.demodashi.com/demo/11297.html 在文章 使用 Gradle 对应用进行个性化定制 中,我们能够针对一个应用的正式服.测试服.超管服等其他 ...
- 关于同一线程两次调用EnterCriticalSection的测试
#include "stdafx.h" #include <iostream> using namespace std; #include <windows.h& ...
- Python 代码块左移或右移
(就 IDE 是 PyCharm 来说) 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab Python 对代码对齐要求很严格的. Python的对齐方式很重要,对齐方式决定了 ...
- Linux命令-网络命令:netstat
netstat -tlun 查看本机监听tcp.udp显示IP地址和端口号 netstat -an 可以查看本机正在连接的所有信息 netstat -rn 可以查看本机网关 windows里面的net ...
- Js日常笔记之变量删除
在Javascript是可以使用delete来手动删除变量,通过这样的方法让GC来回收内存,但在JS中并不是所有的对象都可以被删除的 JS中通过 var\function 声明因含有DontDelet ...
- sklearn中xgboost模块中plot_importance函数(特征重要性)
# -*- coding: utf-8 -*- """ ######################################################### ...