本文目录一览:
- 1、JSON索引解析
- 2、json数据解析出错应该怎么办?
- 3、JSON数据解析,
- 4、json的解析
JSON索引解析
存在,JSON中是否存在某个KEY,某些KEY,某些KEY的任意一个
存在某个KEY(TOP LEVEL)
'{"a":1, "b":2}'::jsonb ? 'b'
存在所有KEY
'{"a":1, "b":2, "c":3}'::jsonb ? array['b', 'c']
存在任意KEY、元素
'["a", "b"]'::jsonb ?| array['a', 'b']
2、等值,JSON中是否存在指定的key:value对(支持嵌套JSON)
'{"a":1, "b":2}'::jsonb @ '{"b":2}'::jsonb
3、包含,JSON中某个路径下的VALUE(数组)中,是否包含指定的所有元素。
postgres=# select jsonb '{"a":1, "b": {"c":[1,2,3], "d":["k","y","z"]}, "d":"kbc"}' @ '{"b":{"c":[2,3]}}';
?column?
----------
t
(1 row)
4、相交,JSON中某个路径下的VALUE(数组)中,是否包含指定的任意元素。
postgres=# select jsonb '{"a":1, "b": {"c":[1,2,3], "d":["k","y","z"]}, "d":"kbc"}' @ '{"b":{"c":[2]}}'
or
jsonb '{"a":1, "b": {"c":[1,2,3], "d":["k","y","z"]}, "d":"kbc"}' @ '{"b":{"c":[3]}}'
;
?column?
----------
t
(1 row)
或(注意1,2,3需要双引号,作为text类型存储,因为操作符?| ?暂时只支持了text[],如果是numeric匹配不上)
postgres=# select jsonb '{"a":1, "b": {"c":["1","2","3"], "d":["k","y","z"]}, "d":"kbc"}' - 'b' - 'c' ? array['2','3','4'] ;
?column?
----------
f
(1 row)
json数据解析出错应该怎么办?
JSON数据解析错误处理办法如下:
-JSONValue failed. Error is: Unescaped control character [0x0D]
这个错误就是JSON解析的时候String 的时候出现转义字符。
对应用NSString 里的stringByReplacingOccurrencesOfString:@"\r"withString:@"" 取消掉转义字符就OK那!
NSString *json_string1=[json_string stringByReplacingOccurrencesOfString:@"\r"withString:@""];
或者是在线工具生成的代码,并不能保证百分百准确的。
JSON数据解析,
后台传递过来的json字符串,直接将它转换成json对象,然后直接获取就可以了
字符串转换为对象的方式为:JSON.parse(str)
转换后的json对象设为jsonobj则想要获取的值可通过如下方式获取
var resp_value = jsonobj.result.cmd_resp;
然后弹窗看一下是否已经获取到了值
alert(resp_value);
json的解析
var obj = {
"info": {
"success": true,
"code": null,
"error": null
},
"data": [{
"id": 1,
"name": "测试用户",
"loginName": "test",
"password": "test",
"mobile1": null,
"mobile2": null,
"telephone": null,
"email": null,
"gender": null,
"address": null,
"removed": 0
}, {
"id": 21,
"name": "研发团队测试",
"loginName": "testTWW",
"password": "testTWW",
"mobile1": null,
"mobile2": null,
"telephone": null,
"email": null,
"gender": null,
"address": null,
"removed": 0
}]
};
var data = obj["data"];