在 java web开发中怎么使用json

在 java web开发中怎么使用json,第1张

一、JSON建构有两种结构:

json简单说就是javascript中的对象数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构

1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。在Java中就是一种Map结构。

2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。在Java中是一种list结构。

经过对象、数组2种结构就可以组合成复杂的数据结构了。

二、Json in Javascript

使用Json语法创建对象

var people = {"name":"jack","sex":"mail"};

可以通过这种语法创建json对象,用“{}”括起来,用“,”隔开key:value

使用Json语法创建数组

var arr =[value1,value2];

一个包含多个people的数组 peoples = [{"name":"jack","sex":"mail"},

"name":"lily","sex":"femail"};

Json数组可以通过这种语法创建,用"[]"括起来,数组元素之间用“,”分隔开,下面是这种语法的示意图:

在使用Json格式字符串与服务器交互时候,可以利用Json扩展的方法将字符串转换成一个JavaScript对象,或者将一个对象转换成Json格式字符串。不过先要登录>

访问数据

只需用点号表示法来表示数组元素。所以,要想访问 上面peoples列表的第一个条目的名字,只需在 JavaScript 中使用下面这样的代码:

peoples[0]name

利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。

修改数据

正如可以用点号和方括号访问数据,也可以按照同样的方式轻松地修改数据:

peoples[0]name = "Rachmaninov";

在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

一,本地存储特性

1、数据存储在用户浏览器中

2、设置、读取方便、甚至页面刷新不丢失数据

3、容量较大约5M

4、只能存储字符串,可以将对象JSONstringify() 编码后存储

二,windowsessionStorage

1、生命周期为关闭浏览器窗口

2、在同一个窗口(页面)下数据可以共享

3、以键值对的形式存储使用

存储数据:

sessionStoragesetItem(key,value)

获取数据:

sessionStoragegetItem(key)

删除数据:

sessionStorageremoveItem(key)

清空数据:(所有都清除掉)

sessionStorageclear()

三windowlocalStorage

存储空间高达5m

没有过期时间

localStorage  会一直存在

sessionStorage 窗口关闭失效

cookie会在客户端和服务器端往返 ,本地存储只存储在本地

存储数据:

设置存储有三种方式:

localStoragekey="value"

localStorage["key"]="value"

localStoragesetItem(key, value)

localStoragesetItem(key,value)

//参数1 是键

//参数2是对应的值

//setItem  也是修改元素

注意:不能直接存储对象  可以将对象转化为1个字符串

//注意:不能直接存储对象  可以将对象转化为1个字符串

//通过json

varstr=JSONstringify(对象名);

localStoragesetItem('对象名',str);

//使用的时候可以再将json字符串转为对象

varstr1=localStoragegetItem('对象名');

varobj=JSONparse(str);

获取数据:

localStoragegetItem(key(1))

//通过索引获取key值

//没有就返回null

删除数据:

localStorageremoveItem(key)

//删除 通过key值

清空数据:(所有都清除掉)

localStorageclear()

对象长度(有多少个元素)

localStoragelength

如果你只是偶尔查一次,那就遍历吧,用 []every 还是很容易写的,或者用 for in 也不难。

但是如果需要经常查找,那最好建立一个查找表,比如

function createLookMap(field) {

var map = {}

for (var i = 0; i < jsonArrlength; i++) {

var item = jsonArr[i]

var key = item[field]

map[field] = item

}

return map

}

var idMap = createLookMap("id")

在查找的时候只需要直接从 idMap 中取就行了

var id = needId()

var obj = idMap[id] // the found object or undefined

如果还需要按 name 来查找,可以再建一个查找表

var nameMap = creaetLookMap("name")

如果 name 不是唯一的,那创建查找表的时候就要耍点手段,保存一个数组而不是一个对象

function createLookMap(field) {

var map = {}

for (var i = 0; i < jsonArrlength; i++) {

var item = jsonArr[i]

var key = item[field]

var list = map[key]

fi (!list) {

map[key] = list = []

}

listpush(item)

}

return map

}

mysql某张表中有一个字段为json格式,假设字段名为properties

{

"ocspeventappend-timestampenable": "true",

"ocspstreamingdatafilterexpression": "id=e4_json",

"ocspeventenable": "true",

"ocspschemafieldnames": "id",

"ocspeventoutputnumPartitions": "0",

"ocspeventjson-formatenable": "true",

"ocspstreamingfieldtranslationenable": "false",

"ocspeventappend-idenable": "false",

"ocspstreamingdatakeys": "id",

"ocspstreamsql": "SELECT id FROM uuu_5dea34758400_oi5xs0rdaf WHERE id=e4_json",

"ocspkafkatopic": "hn_20210216b",

"ocspeventperiod": "{\"period\":\"day\",\"time\":[{\"begin\":{\"d\":\"0\",\"h\":\"03:30:23\"},\"end\":{\"d\":\"0\",\"h\":\"23:20:23\"}}],\"startDate\":\"2021-02-16\",\"endDate\":\"2021-03-28\"}",

"ocspeventperiodSwitch": "true",

"ocspeventoutput": "5d74080d1ac0"

}

现在需要查询ocspstreamsql的值 可以使用json_extract函数。注意如果该key是由点分隔符组成的,则需要用双引号将整个key包起来

select json_extract(properties,'$ "ocspschemafieldnames" ') from COMPONENT where type='EVENT' and id='5dea403ed7c0';

json_keys函数可以用来获取json中所有的key字段

同时 select json_keys (properties) from COMPONENT where type='EVENT' and id='5dea403ed7c0';

先将JSON转换成 JS Array,然后在使用each

var obj = $parseJSON(jsonString);

$each(obj,function(ky,vl) {

consolelogf("key"+ky);

consolelogf("value"+vl);

});

parseJSON貌似需要插件支持 ,还可以试试这个转换

var objson = "[{Title:'Sjr',Content:'Library',summary:'summary'},{Title:'Sjr',Content:'Library',summary:[{sum0:'sum0'},{sum0:'sum1'},{sum0:'sum2'}]},{Title:'Sjr',Content:'Library',summary:[{sum0:'sum0'},{sum0:'sum1'},{sum0:'sum2'}]}]";

var obj = eval(objson);

JSON-C实现了一个引用计数对象模型,它允许您轻松地使用C语言来构建JSON对象,将它们输出为JSON格式的字符串,并将JSON格式字符串解析回JSON对象的C语言表示形式。它的目标是符合 RFC 7159 标准。

使用automake的编译过程如下:

使用cmake编译的过程如下:

cmake可选的几个编译选项为:

要使用json-c,最简单的方式是包含jsonh头文件即可,或者最好是下列更具体的头文件之一:

详细且全面的API介绍文档: >

以上就是关于在 java web开发中怎么使用json全部的内容,包括:在 java web开发中怎么使用json、前端本地存储、json数组 根据动态key获得value 有什么好的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9730892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存