背景:在运用jquery的treegrid控件时,需要动态展现折叠数据,所以需要每次展开行数据时,将从服务器获取的json数据更新至treegrid的data数据的指定属性值中。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="textml; charset=utf-8" />
<title>json迭代修改</title>
</head>
<body>
<script type="text/javascript" language="javascript">
var jsonObj = [{"id":"1",name:"a1",children:
[
{"id":"1.1",name:"a1.1"},
{"id":"1.2",name:"a1.2",children:[
{"id":"1.2.1",name:"a1.2.1"}
]
}
]
},
{"id":"2",name:"a2"}
];
/*
*方法名: setJsonValue
*属 性: json,json格式数据对象,源数据
* identifier,标示区分某一行json数据,json格式数据({"name":"","value":""})
* data,需要修改属性以及修改后的值,json格式数据({"name":"","value":""})
*功 能: 根据identifier,确定json行数据,然后修该行指定属性(data["name"])的值(data["value"])
*返回值: 返回修改后的json对象
**/
function setJsonValue(json,identifier,data){
var item;
for(var i=0; i<json.length;i++){
item = json[i];
if(Object.prototype.toString.apply(item[data["name"]])=="[object Array]" || Object.prototype.toString.apply(item[data["name"]]) == "[object Object]") {
item[data["name"]]=setJsonValue(item[data["name"]],identifier,data);
}
if(item[identifier["name"]]==identifier["value"]){
item[data["name"]]=data["value"];
break;
}
}
return json
}
/*
*方法名:parseJson
*属 性:json,json格式数据
*返回值:无
*/
function parseJson(json){
var item;
for(var itemname in json){
item = json[itemname]
if(Object.prototype.toString.apply(item)=="[object Array]" || Object.prototype.toString.apply(item) == "[object Object]") {
parseJson(item);
}else{
alert("属性:"+itemname+",值:"+item);
}
}
}
jsonObj = setJsonValue(jsonObj,{"name":"id","value":"2"},{"name":"children","value":[{"id":"2.1",name:"a2.1"}]});
parseJson(jsonObj)
</script>
</body>
</html>
分享到:
相关推荐
标题提到的“VC++读取json格式数据(测试可用)”显然涉及了使用C++处理JSON数据的实践方法。 JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在C++中,我们通常会借助如nlohmann/...
本资源“VC++读取json格式数据.rar”显然提供了关于如何在Visual C++(VC++)环境下读取和操作JSON数据的方法。以下是关于这个主题的详细解释: 首先,我们需要了解JSON的基本结构。JSON是一种数据交换格式,支持...
一旦你有了`Json::Value`对象,你可以通过成员函数和索引来访问和修改JSON数据。例如,如果你有一个包含键值对的JSON对象,你可以这样做: ```cpp std::string name = root["name"].asString(); int age = root[...
总之,jQuery提供了强大的功能来处理JSON数据,结合`.each()`遍历方法,我们可以方便地读取、修改和操作JSON对象。同时,利用在线工具,可以进一步优化JSON数据的管理和使用,使开发工作更加高效。在实际项目中,...
在Web服务中,JSON常作为HTTP响应的数据格式。`json-c`可以与HTTP客户端库(如libcurl)结合使用,解析接收到的HTTP响应体中的JSON数据。首先,将HTTP响应体转换为字符串,然后传递给`json_object_from_json_string...
同时,库可能提供迭代器或其他访问方式来遍历和修改解析后的Json数据。 5. **错误处理**:在解析Json时,可能会遇到无效的Json格式,好的Json库会提供适当的错误处理机制,例如抛出异常或返回错误码。开发人员需要...
- JSON数据的遍历:通过迭代器或访问器遍历JSON数组和对象,获取所需数据。 - JSON格式的验证:确保接收到的JSON数据符合预期的格式,避免因数据错误导致的程序异常。 总之,JSON-JAR是一个包含JSON处理功能的Java...
这意味着你可以通过递归或者迭代的方式访问和修改JSON数据的深层结构。 5. **错误检查**:在解析和序列化过程中,QJson库提供了错误检查机制。例如,`QJsonParseError`类可以捕获解析过程中的错误,而`...
注意,jsoncpp提供两种解析模式:`Json::Reader`用于简单的解析,而`Json::Value`则提供了更高级的功能,如直接访问和修改JSON数据。在实际开发中,根据需求选择合适的解析方式。 总的来说,C++通过jsoncpp库解析...
2. 打开JSON文件:一旦安装完成,用户可以通过JsonView打开包含JSON数据的文件,通常这些文件扩展名为`.json`。 3. 数据查看:JsonView会将JSON数据以树形结构展示,方便用户逐层展开查看内容,也可以进行搜索和筛选...
例如,它可以用于接收HTTP请求的JSON数据,解析后存储到数据库,或者从数据库读取数据,转换成JSON响应给客户端。总之,封装cJSON类是C++中高效处理JSON的一个重要工具,能够帮助开发者专注于业务逻辑,而不是JSON的...
在实际应用中,开发者会使用这些库的API来解析JSON字符串,创建JSON对象,读取和修改JSON数据,以及将Java对象转换为JSON格式。例如,使用`JSONObject`和`JSONArray`类可以方便地处理JSON数据结构,而`JsonWriter`和...
在使用过程中,可能会遇到解析错误或格式不正确的JSON数据。Apache JSON库提供了异常处理机制,如`JSONException`,帮助开发者捕获并解决这些问题。为了方便调试,可以使用`toString()`方法打印JSON对象,以便检查...
`jsoncpp`是一个强大的C++库,用于解析和生成JSON数据,它提供了一套完整的API来操作JSON对象,包括读取、写入、查询和修改JSON数据。 #### JSONcpp的使用 在使用`jsoncpp`之前,首先需要下载并安装这个库。`...
4. **LINQ to JSON**:Json.Linq命名空间提供了JObject、JArray等类,使得开发者可以通过LINQ查询语言直接操作JSON对象,进行添加、删除、修改等操作,使得处理JSON数据就像操作.NET集合一样简单。 5. **高性能**:...
8. **功能增强**:除了基本的解析和序列化,JSON-handle可能还提供了一些额外的功能,比如格式化JSON输出,验证JSON结构是否符合特定规范,或者提供JSONPath支持,允许用户按路径查找和提取JSON数据中的特定部分。...
3. **遍历JSON对象**:一旦解析了JSON数据,你可以使用迭代器或者直接访问键来遍历JSON对象。例如,对于一个JSON对象,你可以获取每个键,并用对应的值进行操作;对于JSON数组,你可以访问其元素,每个元素可能是一...
`org.json`框架由Mozilla Foundation提供,它包含了一系列的类和接口,如`JSONObject`、`JSONArray`、`JSONString`等,这些类和接口可以帮助开发者方便地在Java程序中创建、解析和修改JSON数据。 1. **JSONObject**...
如果我们想找到名为"孙子节点2"的年龄,我们可以调用`traverse_json`函数,传入JSON数据和目标键: ```python data = {...} # 前面的JSON数据 traverse_json(data, target_key="age") ``` 这个例子展示了如何通过...
这个类提供了丰富的API,允许开发者创建、读取和修改JSON对象。例如,你可以通过`put()`方法添加键值对,通过`get()`方法获取特定键对应的值,通过`opt()`方法安全地尝试获取键值,即使键不存在也不会抛出异常。 ...