JavaScript操作JSON对象

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。


1、声明JSON对象:

var json_obj = {};
console.log(json_obj);
console.log(typeof json_obj);

在这里插入图片描述
2、添加元素:

var json_obj = {};
var name= 'soufan_data_acquisitionDemo';
json_obj[name] = {node_name: "ONE-FINE", status: "ok", pending: Array(0), running: Array(0), finished: Array(0)};
// 以下效果相同,优势不如上面的明显
// json_obj.name = {node_name: "ONE-FINE", status: "ok", pending: Array(0), running: Array(0), finished: Array(0)};
console.log(json_obj);
console.log(typeof json_obj);

在这里插入图片描述
3、修改元素:

var json_obj = {};
var name = 'soufan_data_acquisitionDemo';
json_obj[name] = {node_name: "ONE-FINE", status: "ok", pending: Array(0), running: Array(0), finished: Array(0)};
json_obj.soufan_data_acquisitionDemo = "我被修改了";
console.log(json_obj);
console.log(typeof json_obj);

在这里插入图片描述
4、查询元素:

var json_obj = {};
varname = 'soufan_data_acquisitionDemo';
json_obj[name] = {node_name: "ONE-FINE", status: "ok", pending: Array(0), running: Array(0), finished: Array(0)};
json_obj.soufan_data_acquisitionDemo = "我被修改了";
console.log(json_obj.soufan_data_acquisitionDemo);
console.log(json_obj[name]);
console.log(json_obj['soufan_data_acquisitionDemo']);

在这里插入图片描述

5、删除元素:

var json_obj = {};
var name = 'soufan_data_acquisitionDemo';
json_obj[name] = {node_name: "ONE-FINE", status: "ok", pending: Array(0), running: Array(0), finished: Array(0)};
json_obj.soufan_data_acquisitionDemo = "我被修改了";
console.log(json_obj);
delete json_obj[name];
console.log(json_obj);

在这里插入图片描述
6、遍历:

$(function() {
    var json = [ {
        "id" : "1",
        "tagName" : "apple"
    }, {
        "id" : "2",
        "tagName" : "orange"
    }, {
        "id" : "3",
        "tagName" : "banana"
    }, {
        "id" : "4",
        "tagName" : "watermelon"
    }, {
        "id" : "5",
        "tagName" : "pineapple"
    } ];

    $.each(json, function(idx, obj) {
        alert(idx+"---"+obj.tagName);
    });
});

7、转换:

json字符串转json对象:jQuery.parseJSON(jsonStr);
json对象转json字符串:JSON.stringify(jsonObj);

参考:

js 操作json对象增删改 https://www.cnblogs.com/louby/p/7513263.html
jquery中的json操作 https://www.cnblogs.com/tingbogiu/p/5826414.html

附:js 操作json对象增删改,来源: https://www.cnblogs.com/louby/p/7513263.html

//将表单序列化成字符串
$.fn.serializeObject = function () {
    var obj = {};
    var count = 0;
    $.each(this.serializeArray(),
        function (i, o) {
            var n = o.name, v = o.value;
            count++;
            obj[n] = obj[n] === undefined
                ? v
                : $.isArray(obj[n])
                    ? obj[n].concat(v)
                    : [obj[n], v];
        });
    obj.nameCounts = count + ""; //表单name个数
    return JSON.stringify(obj);
};

//添加或者修改json数据
function setJson(jsonStr, name, value) {
    if (!jsonStr) jsonStr = "{}";
    var jsonObj = JSON.parse(jsonStr);
    jsonObj[name] = value;
    return JSON.stringify(jsonObj);
}

//删除数据
function deleteJson(jsonStr, name) {
    if (!jsonStr) return null;
    var jsonObj = JSON.parse(jsonStr);
    delete jsonObj[name];
    return JSON.stringify(jsonObj);
}

生成测试
//    var myjsonStr = setJson(null,"name","aaa");
//    alert(myjsonStr);
添加测试
//    myjsonStr = setJson(myjsonStr,"age",18);
//    alert(myjsonStr);
修改测试
//    myjsonStr = setJson(myjsonStr,"age",20);
//    alert(myjsonStr);
删除测试
//    myjsonStr = deleteJson(myjsonStr,"age");
//    alert(myjsonStr);

推荐:

JS操作JSON总结 https://www.cnblogs.com/worfdream/articles/1956449.html
使用Jquery解析Json基础知识 http://www.cnblogs.com/madyina/p/3448518.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要遍历一个JSON对象,可以使用JavaScript中的for-in循环。首先,将获取的数据转换为JSON对象,可以使用JSON.parse(data)方法或者jQuery库中的jQuery.parseJSON(json)方法。接下来,使用for-in循环遍历JSON对象,通过得到的key和value来进行相应的操作。如果value是一个对象,可以使用typeof value == "object"进行判断,并使用递归的方式遍历内部的对象。以下是一个示例方法来获取JSON对象中的值: ``` function getJsonValue(obj, name){ var result = null; var value = null; for(var key in obj){ value = obj[key]; if(key == name){ return value; } else { if(typeof value == "object"){ result = getJsonValue(value, name); } } } return result; } var jsonobj = { "semantic":{ "taskId":"8.4.3" }, "history":"cn.xxxx.fund" }; var taskId = getJsonValue(jsonobj, "history"); console.log(taskId); ``` 这个方法将通过递归的方式遍历JSON对象,根据给定的name参数,返回对应的值。在这个示例中,我们使用了jsonobj***fund"作为结果输出到控制台。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jsjson对象的遍历和其他方法处理](https://blog.csdn.net/u012409048/article/details/115920371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [js 遍历 JSON数据](https://blog.csdn.net/fox_bert/article/details/100594710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值