json.net(Json.NET - Newtonsoft)利用动态类解析json字符串
将对象转换为字符串很简单,唯一要注意的点就是为了避免循环要在需要的字段上添加jsonignore属性。可以参照这篇博文:http://www.mamicode.com/info-detail-1456182.html
在将json字符串转换为对象的时候需要注意的地方就比较多了。不要因为功能简单就不当回事,新手如果不注意容易吃亏。
这里用读取 http://jsonplaceholder.typicode.com/users 中的json数据来作为演示。
新建控制台程序,新建JsonDemo类
using System;
using System.Net.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; namespace JsonD
{
public class JsonDemo
{
public static void TestJson()
{
HttpClient client = new HttpClient(); HttpResponseMessage response =
client.GetAsync("http://jsonplaceholder.typicode.com/users").Result; Console.WriteLine(response.Content.ReadAsStringAsync().Result); string jsonString = response.Content.ReadAsStringAsync().Result; // JsonConvert.DeserializeObject()
Console.WriteLine("下面尝试转换json字符串为动态类并获取属性");
dynamic jsonObj = JsonConvert.DeserializeObject(jsonString);
// 或者dynamic jsonObj = JToken.Parse(jsonString) as dynamic; Console.WriteLine(jsonObj[].id);
Console.WriteLine(jsonObj[].address.city);
Console.WriteLine(jsonObj[].address.geo.lat); Console.WriteLine("下面尝试转换json字符串为实体并获取属性");
User[] users = JsonConvert.DeserializeObject<User[]>(jsonString); foreach (User user in users)
{
Console.WriteLine(user.name);
}
}
}
}
User实体:
namespace JsonD
{
public class User
{
public int id { set; get; }
public string name { set; get; }
public string email { set; get; }
}
}
Program.cs调用:
static void Main(string[] args)
{
// sendSms();
JsonDemo.TestJson(); Console.ReadLine();
}
json.net(Json.NET - Newtonsoft)利用动态类解析json字符串的更多相关文章
- 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤
项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...
- c#动态类转json,再由json转xml
直接上代码了,多说无意了. using System; using System.Collections; using System.Collections.Generic; using System ...
- 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化
1. 首先, JavascriptSerializer类所在名空间: using System.Web.Script.Serialization; 2. 相关的3篇文章, 标记下: 使用JavaScr ...
- 05-06 Flutter JSON和序列化反序列化、创建模型类转换Json数据、轮播图数据渲染:Flutter创建商品数据模型 、请求Api接口渲染热门商品 推荐商品
Config.dart class Config{ static String domain='http://jd.itying.com/'; } FocusModel.dart class Focu ...
- IOS自带json解析类解析json
- (IBAction)test:(id)sender { NSString *result = @"{\"code\":\"S00000\",\&q ...
- 利用正则表达式类解析SQL语句,达到Worklist兼容各个RIS数据库的目的
在做RIS的项目中遇到一个问题, 因为Worklist要兼容各个RIS数据库, 因此设计了目前这个架构. 1.xml文件来配置RIS数据库的数据源, 2.xml文件来存储关于查询/更新数据库的SQL语 ...
- IOS 解析Json数据(NSJSONSerialization)
● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...
- Android 利用Gson生成或解析json
目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...
随机推荐
- HUD:2896-病毒侵袭
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2896 病毒侵袭 Time Limit: 2000/1000 MS (Java/Others) Memor ...
- BFS:HDU3085-Nightmare Ⅱ(双向BFS)
Nightmare Ⅱ Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; 我这个问题最后解决方式是,吧工程里面用同一个v4包. 很明显, ...
- SSRS 报表管理器 http://localhost/Reports HTTP500 内部错误处理过程
原文地址:http://www.cnblogs.com/zzry/p/5716056.html 安装了很多机器的sqlserverBI 组件 初始安装配置下 浏览报表管理器 http://localh ...
- 使用dnspod遭遇的奇特问题以及背后的原因与临时解决方法
由于园子里有不少用户在使用dnspod,我们觉得有必要将这两天blogjava.net域名在dsnpod遇到的奇特问题分享一下,以免再有人踩着这个坑. 12月11日,我们登录到dnspod的后台时,大 ...
- hnust Snowman
问题 D: Snowman 时间限制: 1 Sec 内存限制: 128 MB提交: 203 解决: 94[提交][状态][讨论版] 题目描述 前言:这是某比赛的热身题,本题主要考察英文水平,只要看 ...
- 菜鸟之路——机器学习之Kmeans聚类个人理解及Python实现
一些概念 相关系数:衡量两组数据相关性 决定系数:(R2值)大概意思就是这个回归方程能解释百分之多少的真实值. Kmeans聚类大致就是选择K个中心点.不断遍历更新中心点的位置.离哪个中心点近就属于哪 ...
- 构建乘积数组--java
题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不能使 ...
- html5中checkbox的选中状态的设置与获取
获取checkbox是否选中: $("#checkbox").is(":checked"); 获得的值为true或false. 设置checkbox是否选中: ...
- POJ 3683 Priest John's Busiest Day(2-SAT+方案输出)
Priest John's Busiest Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10010 Accep ...