操作JSON对象
JSON类型对象,最简单了,就是键值对,key:value、key:value、一直不停地key:value下去,层层嵌套,理论上多少层都可以,只要你喜欢。
可是,每次应用JSON,我都心烦意乱,甚至吓到面无人色。何哉?不懂咯,没有真正理解咯,拿到一个JSON对象,不知道如何去使用它,如何去读取里面的数据。
只能够一点一点地记录一些心得,期待量变达成质变,化蛹成蝶,肩胛骨处长出一对翅膀来。
1、JS里面使用
1)用key直接访问对应的value
比如:
var jsonobj ={"total":106,"rows":[{},{},{}.....]}
alert(jsonobj.total);
2)遍历key
var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};
function EnumaKey(){
for(var key in smsTypeDesc){
alert(key);
}
}
function GetVal(){
var key = prompt("请输入要查询的key","4");
if("undefined"==typeof(smsTypeDesc)) return;
if("undefined"==typeof(smsTypeDesc[key])){
alert("输入的key:"+key+", 在json对象中不存在!");
return;
}
alert("您输入的key是:"+key + ",该key所对应的值是:"+smsTypeDesc[key]);
}
function GetValByKey(){
alert(smsTypeDesc.aa);
}
本例子摘自 http://blog.csdn.net/love__coder/article/details/7532616
3、提交或获取服务器端的JSON数据
$.ajax({
url: "/api/customview/SetTags?account=" + _index_account,
data: JSON.stringify(effectRow),
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
_dg.datagrid('acceptChanges');
if (data == true) {
if (setTagsCallback != null) setTagsCallback();
alert("OK");
} else {
alert("failed");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus + ": " + errorThrown);
}
});
2、.NET里使用
.NET中操作JSON,非newtonsoft.json莫属。
newtonsoft.json里面的类型,目前来看,有以下类型:
JObject
用于操作JSON对象
JArray
用语操作JSON数组
JValue
表示数组中的值
JProperty
表示对象中的属性,以"key/value"形式
JToken
用于存放Linq to JSON查询后的结果
参考文章:http://www.cnblogs.com/usharei/archive/2012/04/24/2467578.html
有代码有J8:
- using Newtonsoft.Json;
- JObject json = ...
- JToken[] jps = json["records"][0].ToArray();
- List<ItemInfo> cols = json["columns"].ToObject<List<ItemInfo>>();
- ……
- JArray array = new JArray();
- array.Add(data);
- Tuple<int, JObject> tuple = customViewService.UpdateDataByView(ProjectId, account, array, viewId);
- JObject ret = new JObject();
- ret.Add(new JProperty("rows", array));
- ret.Add(new JProperty("result", tuple.Item1 > 0));
遍历,在不清楚该JSON的结构情况下:
- JsonTextReader reader = new JsonTextReader(new StringReader(sjson));
- StringBuilder sb = new StringBuilder("");
- while (reader.Read())
- {
- if (reader.Value != null)
- sb.Append(String.Format("Token: {0}, Value: {1}\r\n", reader.TokenType, reader.Value));
- else
- sb.Append(String.Format("Token: {0}\r\n", reader.TokenType));
- }
操作JSON对象的更多相关文章
- 在Javascript操作JSON对象,增加 删除 修改
在Javascript操作JSON对象,增加删除修改全有的,详情见代码 <script type="text/javascript"> var jsonObj2 = { ...
- javascript、js操作json对象和字符串互相转换方法
相信前端的同学们对json并不陌生,接触过很多.但是很少人知道json的全称是什么,哈哈,我也是查资料知道的.(JSON JavaScript Object Notation是一种轻量级的数据交换格式 ...
- 操作Json对象的C#方法
json对象长这样 { "UniqueName": { "Required": "true", , , "Regex": ...
- 如何使用powershell操作json对象
读取Json文件 $dataTransformerDirPath为读取Json文件的目录 点击查看代码 # 读取文件 UTF8-NOBOM function ReadFile($path) { ret ...
- shell下有操作json对象的库
http://kernelpanic.im/blog/2012/03/08/shell-manipulate-json/ Json.org推荐了两个:Jshon和JSON.sh 其中JSON.sh是完 ...
- js 操作json对象增删改
//将表单序列化成字符串 $.fn.serializeObject = function () { var obj = {}; var count = 0; $.each(this.serialize ...
- javascript操作JSON对象,增加 删除 修改
JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值
一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...
- JsonCpp操作数组对象
JsonCpp操作数组对象 概述 Json格式数据中,除了简单的String类型和一些非String类型,也有像各种高级语言中的数组类型一般的数组对象,且Json数组在实际开发中使用频率也比较高, ...
随机推荐
- 初识Typescript及vscode环境配置
什么是typescript?为什么要用它? typescript简称ts,是js语法的一个超级,由微软团队维护的 js特点(不足) 弱类型:js中的数据变量没有确定的类型,可以存储对象,可以存储数字, ...
- [Python3网络爬虫开发实战] 7.1-Selenium的使用
Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击.下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬.对于一些JavaScript动态渲染的页面来说 ...
- python字符串,常用编码
Python的字符串和编码 1.常用编码 与python有关的编码主要有:ASCII.Unicode.UTF-8 其中ASCII如今可以视作UTF-8的子集 内存中统一使用Unicode编码(如记事本 ...
- CIFAR100与VGG13实战
目录 CIFAR100 13 Layers cafar100_train CIFAR100 13 Layers cafar100_train import tensorflow as tf from ...
- Python之目录结构
Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...
- element-UI 多表单重置的时候的坑
问题细化一下是这样的:比如我有一个用来修改数据的表单,第一条数据是{name: 'Xixi', age: 12},打开表单后就有两个输入框分别填的是Xixi和12,此时我修改Xixi为Haha,调用t ...
- UVa 11998 破碎的键盘(数组实现链表)
题意: 输入一行字符,其中包含'[' 和 ‘]’, 意思为键盘上的home 和 end 键, 然后模拟字符在键盘上输入. 输入一行最终的结果 分析: 用数组模拟一个链表, 在链表的头尾插入字母然后输出 ...
- vs2003 刷新项目失败。无法从服务器中检索文件夹信息
环境: 操作系统:windows server 2003 开发工具:Visual stuadio 2003 FrameWork: 1.1 打开web项目的时候报错 提示 项目刷新失败,无法从服务器 ...
- 【转】Comet:基于 HTTP 长连接的“服务器推”技术
原文链接:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ 很多应用譬如监控.即时通信.即时报价系统都需要将后台发生的变化实时传送到客户端而无 ...
- Java中static、final、static final的区别
final: final可以修饰:属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变. final修饰的属性跟具体对象有关,在运行期 ...