Newtonsoft.Json解析json字符串和写json字符串
写:
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
//如果报错则使用JsonWriter writer = new JsonTextWriter(sw);
writer.WriteStartArray();
writer.WriteValue("JSON!");
writer.WriteValue();
writer.WriteValue(true);
writer.WriteStartObject();
writer.WritePropertyName("property");
writer.WriteValue("value");
writer.WriteEndObject();
writer.WriteStartObject();
writer.WritePropertyName("data");
writer.WriteValue(_str);
writer.WriteEndObject();
writer.WriteEndArray();
writer.Flush();
string jsonText = sw.GetStringBuilder().ToString();
Response.Write(jsonText);
读: 注意格式;
string message ={"ObjectId":"fd4169f8-337d-4796-be8c-c35f1075f151","SequenceNo":""}
   var obj = Newtonsoft.Json.Linq.JObject.Parse(message);
            if (obj == null)
            {
                throw new Exception("获取消息失败!");
            }
            var Id = obj["ObjectId"].ToString();
            var DeptNo = obj["SequenceNo"].ToString(); 
使用JObject读写字符串:
JObject jo = JObject.Parse(jsonText);
 string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();
数组格式解析成二维数组;
StringBuilder sb = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{
string jsontext = "[{ID:'1',Name:'zhangsan',Other:[{Age:'111'}]}]";
//jsontext数组格式
Newtonsoft.Json.Linq.JArray ja = (Newtonsoft.Json.Linq.JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(jsontext);
foreach (Newtonsoft.Json.Linq.JObject item in ja)
{
string aa = item["Name"].ToString();
Newtonsoft.Json.Linq.JArray ja0 = (Newtonsoft.Json.Linq.JArray)item["Other"];//数组格式
foreach (Newtonsoft.Json.Linq.JObject item0 in ja0)
{
string bb = item0["Age"].ToString();
}
}
数组型数据
string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";
 JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
 string ja1a = ja[]["a"].ToString();
 //或者
JObject o = (JObject)ja[];
 string oa = o["a"].ToString();
嵌套格式
string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
 JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
 string zone = jo["beijing"]["zone"].ToString();
 string zone_en = jo["beijing"]["zone_en"].ToString();
反序列化JSON到给定的匿名对象.
/// <summary>
/// 反序列化JSON到给定的匿名对象.
/// </summary>
/// <typeparam name="T">匿名对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="anonymousTypeObject">匿名对象</param>
/// <returns>匿名对象</returns>
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
{
T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
return t;
}
http://www.cnblogs.com/huangcong/p/7048501.html
http://www.cnblogs.com/songjiali/p/6165281.html
Newtonsoft.Json解析json字符串和写json字符串的更多相关文章
- json解析的函数eval_r() 和 JSON.parse()
		
eval_r()解析的字符串格式是'({"data":"hello","num":"5"})' ...
 - Qt JSON解析生成笔记(把JSON转成一个类对象)
		
对于这样一段json { "name": "布衣食", "gender": "Male", "age" ...
 - 一起写一个JSON解析器
		
[本篇博文会介绍JSON解析的原理与实现,并一步一步写出来一个简单但实用的JSON解析器,项目地址:SimpleJSON.希望通过这篇博文,能让我们以后与JSON打交道时更加得心应手.由于个人水平有限 ...
 - java 写一个JSON解析的工具类
		
上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...
 - 自己动手实现一个简单的JSON解析器
		
1. 背景 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.相对于另一种数据交换格式 XML,JSON 有着诸多优点.比如易读性更好,占用空间更少等.在 ...
 - 关于浮点数的json解析
		
近期在工作中遇到个问题 通过post请求从其他系统(好像是C#写的)获得json字符串 {"geometry":{"rings":[[[40426489.331 ...
 - 3. 懂了这些,方敢在简历上说会用Jackson写JSON
		
你必须非常努力,才能看起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...
 - Android okHttp网络请求之Json解析
		
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
 - perl6 JSON::Fast模块json解析的使用
		
关于JSON: JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,语法简单,各种语言都有相应的库或者模块支持. 因为JSON非常小巧,解析起来又非常简单,我 ...
 
随机推荐
- Eclipse中Spring插件的安装及使用
			
一.安装流程 1.Help——Install New Software——在Work With中添加地址http://dist.springsource.com/release/TOOLS/updat ...
 - Mysql 别名
			
一.列别名 1.要给列添加别名,可以使用AS关键词后跟别名,例:SELECT [column_1 | expression] AS descriptive_name FROM table_name; ...
 - VC对话框的菜单设置变灰, 打勾 等
			
一般可以用UPDATE_COMMAND_UI消息,并加入以下代码:pCmdUI->Enable(FALSE); 就实现,弹对话框的菜单需要增加对WM_INITMENUPOPUP消息的处理以后,才 ...
 - pytorch 迁移学习[摘自官网]
			
迁移学习包含两种:微调和特征提取器. 微调:对整个网络进行训练,更新所有参数 特征提取器:只对最后的输出层训练,其他层的权重保持不变 当然,二者的共性就是需要加载训练好的权重,比如在ImageNet上 ...
 - SprimgMVC学习笔记(九)—— RESTful支持
			
一.什么是restful? Restful就是一个资源定位及资源操作的风格,其核心是面向资源.不是标准也不是协议,只是一种风格.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制.RES ...
 - Linq To DataTalbe 列X不属于表
			
项目中遇到一个问题,利用linq to datatable查询得到一个query,截止到红色代码部分时,一切都正常,只要一运行query.where 就会报异常:列“SingDate”不属于列表,查看 ...
 - nginx与 Keepalived高可用
			
1.1 keepalived软件能干什么? Keepalived软件起初是专为LVS负载均衡软件设计的, 用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能 K ...
 - kafka的offset和ProcessingGuarantee
			
https://blog.csdn.net/xianpanjia4616/article/details/84347087 https://m.2cto.com/net/201703/616024.h ...
 - java向mysql中写入中文出现乱码
			
乱码的原因有很多,我遇到的原因是url配置的问题,解决方案: 将: jdbc.url=jdbc:mysql://localhost:3306/XXXX?useUnicode=true&char ...
 - 信息领域热词分析系统--java爬取CSDN中文章标题即链接
			
package zuoye1; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLExce ...