将对象转换为字符串很简单,唯一要注意的点就是为了避免循环要在需要的字段上添加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字符串的更多相关文章

  1. 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤

    项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...

  2. c#动态类转json,再由json转xml

    直接上代码了,多说无意了. using System; using System.Collections; using System.Collections.Generic; using System ...

  3. 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化

    1. 首先, JavascriptSerializer类所在名空间: using System.Web.Script.Serialization; 2. 相关的3篇文章, 标记下: 使用JavaScr ...

  4. 05-06 Flutter JSON和序列化反序列化、创建模型类转换Json数据、轮播图数据渲染:Flutter创建商品数据模型 、请求Api接口渲染热门商品 推荐商品

    Config.dart class Config{ static String domain='http://jd.itying.com/'; } FocusModel.dart class Focu ...

  5. IOS自带json解析类解析json

    - (IBAction)test:(id)sender { NSString *result = @"{\"code\":\"S00000\",\&q ...

  6. 利用正则表达式类解析SQL语句,达到Worklist兼容各个RIS数据库的目的

    在做RIS的项目中遇到一个问题, 因为Worklist要兼容各个RIS数据库, 因此设计了目前这个架构. 1.xml文件来配置RIS数据库的数据源, 2.xml文件来存储关于查询/更新数据库的SQL语 ...

  7. IOS 解析Json数据(NSJSONSerialization)

    ● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...

  8. 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中

    http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...

  9. Android 利用Gson生成或解析json

    目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...

随机推荐

  1. LCS及方案数(DP)

    Description 对于一个序列

  2. 配置Spring.NET

    先引入关键的程序集 Common.Logging.dll Spring.Core.dll 在配置文件配置中: <configSections> ...... <sectionGrou ...

  3. border,border-width不支持百分比

    1.border-width不支持百分比 原因:不会因为设备大就按比例变大 同样的,outline,box-shadow,text-shadow也不支持百分比 也就是border不支持百分比 2.bo ...

  4. 部署 Windows PowerShell Web 访问

    部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® We ...

  5. Adaboost和GBDT的区别以及xgboost和GBDT的区别

    Adaboost和GBDT的区别以及xgboost和GBDT的区别 以下内容转自 https://blog.csdn.net/chengfulukou/article/details/76906710 ...

  6. 获取表的字段例如 col1,col2,col3

    create function [dbo].[f_getcolsByName](@tableName varchar(50)) returns varchar(1000)asbegin declare ...

  7. SRCNN(一)

    SRCNN学习(一):demo_SR.m 一.demo_SR.m 使用方法 1.Place the "SRCNN" folder into "($Caffe_Dir)/e ...

  8. Linux内存使用消耗高

    Linux系统下如果内存占用很高又找不到是被什么程序占用的,需要考虑下是否是SLAB的问题.SLAB是Linux操作系统的一种内存分配机制,可以使用下面命令来查看.例如: cat /proc/memi ...

  9. socket传输对象

    server public class Server{ private static int port = 8888; private static ServerSocket serverSocket ...

  10. Codeforces Round #316 (Div. 2) A 水

    A. Elections time limit per test 1 second memory limit per test 256 megabytes input standard input o ...