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非常小巧,解析起来又非常简单,我 ...
随机推荐
- 改变HTML文件上传控件样式
思路: 1.重写一个新的样式 2.将默认样式设置display:none;,即设为不可见 3.在js里调用:当点击新样式的时候,调用这个input的点击事件 html: <div class=& ...
- UVa_Live 3664(精度坑)
题意很好理解的贪心题,然而却卡疯了的精度坑. 再次理解一下double小数运算时可能导致的精度问题,本题为避免该问题可以将小数乘以100化为整数进行比较,输出的时候再除以100就ok: 思路也很好想, ...
- 洛谷P4462 [CQOI2018]异或序列(莫队)
打广告->[这里](https://www.cnblogs.com/bztMinamoto/p/9538115.html) 我蠢了…… 如果$a_{l} xor ...a_{r}=k$,那么只要 ...
- Python学习过程(二)
条件判断和循环 条件判断 age = 20 if age >= 18: print 'your age is',age print 'adult' elif age >=6 : print ...
- 树状数组 P3605 [USACO17JAN]Promotion Counting晋升者计数
P3605 [USACO17JAN]Promotion Counting晋升者计数 题目描述 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训--牛是可怕的管理者! 为了方便,把奶牛从 ...
- FFT字符串匹配
本文半原创 参考资料:其实就是照抄的什么参考啊 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可 ...
- Android----获取包名和sh1
第一种:使用java的一个工具---keytool工具(jdk目录下) SHA1叫安全哈希算法用于签名 keytool -list -v -keystore 签名证书所在位置path 第二种:通过An ...
- DataSet强类型、TableAdapter的使用
简答使用可以看https://www.cnblogs.com/namejr/p/10411920.html中的"先来简单介绍dataset和datatable" DataSet强类 ...
- C++_引用变量探究
什么是引用 引用变量是已定义变量的别名. 如何定义引用变量: int rats; int & rodents = rats; 其中&不失地址运算符,而是类型标识符的一部分.就行声明ch ...
- 用异或运算交换两个整数实现swap函数功能
对于异或运算有这如下说明: 1^1=0 0^0=0 1^0=1 0^1=1 简单理解就是当两个书相同时结果为0,而两个数不同时异或的结果为1 可用于两个整数的交换,而不用去引入一个中间变量 #incl ...