jquery怎样向json中的object添加键值对(元素)?

jquery怎样向json中的object添加键值对(元素)?,第1张

jquery对json 键值对或数组的增加、删除、遍历 *** 作的代码如下:

var jsonStr={}

//增加jsonStr["name1"]="yu"jsonStr["name2"]="jin"jsonStr["name3"]="sheng"

$.each(jsonStr,function(_key)

{    console.log("Push结果:"+_key+"=="+jsonStr[_key]+"\r\n")})

//遍历$.each(jsonStr,function(_key)

{    var key = _key

var value = jsonStr[_key] 

if(_key=="name1")

{  //删除       delete jsonStr[_key]

}

})

$.each(jsonStr,function(_key){    console.log("删除后的结果:"+_key+"=="+jsonStr[_key]+"\r\n")

})

输出结果为:

扩展资料:

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。

jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块。

在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle(一款纯JavaScript实现的CSS选择器引擎,用于查找与选择器表达式匹配的元素集合)遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQuery对象。

浏览器功能测试模块提供了针对不同浏览器功能和bug的测试结果,其他模块则基于这些测试结果来解决浏览器之间的兼容性问题。

在底层支持模块中,回调函数列表模块用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能。

异步队列模块用于解耦异步任务和回调函数,它在回调函数列表的基础上为回调函数增加了状态,并提供了多个回调函数列表,支持传播任意同步或异步回调函数的成功或失败状态。

数据缓存模块用于为DOM元素和Javascript对象附加任意类型的数据;队列模块用于管理一组函数,支持函数的入队和出队 *** 作,并确保函数按顺序执行,它基于数据缓存模块实现。

参考资料:

百度百科--jQuery

生产中遇到jsonobject的添加,但是会遇到许多的相同的key值,如果put的话就会覆盖之前的value。‘

在许多的解决方法中大多数人是在for循环里写了JSONObject newjson = new JSONObject()

这么一句,但是我要这种形式的怎么办?  {"王焕":"经理,执行董事"}是不是不能这么写了,如果这样写得到的是什么呢?控制台输出如下:

  {"王焕":"经理"} {"王焕":"执行董事"}

经过三个小时的研究我发现,如果你new一个和之前相同的key的话他会返回之前的value,如果之前没有的话就会返回空。如下图:

不知道你们看懂没?王维是之前出现过的key值,再一次put就会返回之前的value值,韩愈之前没有,所以返回null。这是发现很有帮助,思维如下

借用返回值是否为空做一个判断,如果返回值为空,那就不管他,添加就好,如果返回值不是空说明这个key之前已经添加过,再次添加则会覆盖掉返回值,那怎么办,不为空put的时候把返回值拼接。如图:

这样就达到目的了。生产的源码就不粘了,道理是一样的不过生产中还有其他的业务逻辑。

1、使用原生的解析:

String json = "..."

JSONArray array= new JSONArray(json)

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:

for (int j = 0j <array.length()j++) {

obj = array.getJSONObject(j)

Data data = new Data()

data.setThumbnail(obj.getString("thumbnail"))

data.setTitle(obj.getString("title"))

data.setUrl(obj.getString("url"))

mDataList.add(data)

}

2、使用第三方包如Gson,但是这个你得保证你的JSON字符串个z


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

原文地址:https://54852.com/bake/7866003.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存