
先把你的这个JSON解析成一个对象,假如说是oldObj吧
然后新建一个newObj
for(var i = 0; i < oldObjlength; i++){newObj[i] = new Object();
newObj[i]AreaId = oldObj[i]AreaId;
newObj[i]AreaName = oldObj[i]AreaName;
}
最后把这个newObject解析成JSON就可以了
var str = "[{},{},{}]";
var arr = eval("("+str+")");
for(var i=0;i<arrlength;i++){
var obj= arr[i];
}
DELIMITER $$
USE `dw`$$
DROP FUNCTION IF EXISTS `fn_Json_getKeyValue`$$
CREATE DEFINER=`data`@`%` FUNCTION `fn_Json_getKeyValue`(
in_JsonArray VARCHAR(4096),#JSON数组字符串
in_Index TINYINT, #JSON对象序号,序号从1开始
in_KeyName VARCHAR(64)#键名
) RETURNS VARCHAR(512) CHARSET utf8
BEGIN
DECLARE vs_return VARCHAR(4096);
DECLARE vs_JsonArray, vs_Json, vs_KeyName VARCHAR(4096);
#declare vs_Json varchar(4096);
DECLARE vi_pos1, vi_pos2 SMALLINT UNSIGNED;
#写监控日志
#insert into dwt_etl_log(sp_name, title, description)
#values('dwfn_Json_getKeyValue', '通过Json键名取键值', concat('in_JsonArray=', in_JsonArray));
SET vs_JsonArray = TRIM(in_JsonArray);
SET vs_KeyName = TRIM(in_KeyName);
IF vs_JsonArray = '' OR vs_JsonArray IS NULL
OR vs_KeyName = '' OR vs_KeyName IS NULL
OR in_Index <= 0 OR in_Index IS NULL THEN
SET vs_return = NULL;
ELSE
#去掉方括号
SET vs_JsonArray = REPLACE(REPLACE(vs_JsonArray, '[', ''), ']', '');
#取指定的JSON对象
SET vs_json = SUBSTRING_INDEX(SUBSTRING_INDEX(vs_JsonArray,'}', in_index),'}',-1);
IF vs_json = '' OR vs_json IS NULL THEN
SET vs_return = NULL;
ELSE
SET vs_KeyName = CONCAT('"', vs_KeyName, '":');
SET vi_pos1 = INSTR(vs_json, vs_KeyName);
IF vi_pos1 > 0 THEN
#如果键名存在
SET vi_pos1 = vi_pos1 + CHAR_LENGTH(vs_KeyName);
SET vi_pos2 = LOCATE(',', vs_json, vi_pos1);
IF vi_pos2 = 0 THEN
#最后一个元素没有','分隔符,也没有结束符'}'
SET vi_pos2 = CHAR_LENGTH(vs_json) + 1;
END IF;
SET vs_return = REPLACE(MID(vs_json, vi_pos1, vi_pos2 - vi_pos1), '"', '');
END IF;
END IF;
END IF;
RETURN(vs_return);
END$$
DELIMITER ;
测试: {"old_current_score":"2","new_current_score":"0","old_grade_id":"1","new_grade_id":"1","grade_time":"2016-04-09 00:43:26","grade_upgrade_time":"2017-04-09 00:43:26"}
select fn_Json_getKeyValue(reason,1,'old_grade_id');
首先json一般是用来传递web页面和后台的一种数据容器
1,、后台开发接收前台传过来的json字符串,java有个开发包netsfjsonJSONObject(百度下就有下载地址),调用里面的JSONObject a = new JSONObject(String JsonString)。就可以自动解析JSON字符串数据,得到一个JSONObject对象a,然后a有有个get(String name)的方法,就可以得到a对象里面的具体数据(由键值name获取对应的数据,像map一样)
2、前台页面接收后台传来的JSON对象主要是通过Javascript来解析,有开放JS文件jsonjs(同样百度下就很容易找到下载地址),有了这个文件就可以解析后台传入的JSON对象了,具体方法:有个JSONparse(JsonStr)的方法,JsonStr就是后台传入的JSON对象字符串。用此方法得到一个JsonObj后,就可以用Js *** 作数组的规则对此对象读取数据,常用的有JsonObjlengh来遍历整个JsonObj。
3、前台将一个JSON对象传到后台可以用2里面提及的开发包中的JSONstringify(JsonObj)将一个JsonObj对象变成字符串传到后台,然后通过1里面的方法获取该对象里面的内容。处理完毕后传到前台用2里面的方法进行解析
<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript">
var _try_data =
{
"message_list": [
{
"viewer_list": [],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a1",
},
{
"viewer_list": [],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a7",
},
{
"viewer_list": [],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a5",
}
]
};
var try_bc_param =
{
"bc_list": [
{
"start_moment": 3,
"story_id": "v1_10010_52_1_54a1",
"caption": "我不知道你是谁1。",
"duration": 4
},
{
"start_moment": 3,
"story_id": "v1_10010_52_1_54a5",
"caption": "我不知道你是谁2。",
"duration": 4
},
{
"start_moment": 09,
"story_id": "v1_10010_52_1_54a1",
"caption": "我不知道你是谁3。",
"duration": 4
}
]
};
var filterData = function(a, b)
{
var array = [];
for (var i = 0; i < alength; i++)
{
var x = a[i]["story_id"];
for (var j = 0; j < blength; j++)
{
var bj = b[j];
if (x == bj["story_id"])
{
var obj =
{
"start_moment": bj["start_moment"],
"caption": bj["caption"]
};
arraypush(obj);
}
}
}
arraysort(function(c, d)
{
var x = parseFloat(c['start_moment'], 10), y = parseFloat(d["start_moment"], 10);
if (x < y)
{
return -1;
}
else if (x > y)
{
return 1;
}
else
{
return 0;
}
});
return array;
}
var displayDiv = function(array)
{
for (var i = 0; i < arraylength; i++)
{
var div = documentcreateElement('div');
divinnerHTML = array[i]['caption'];
documentbodyappendChild(div);
}
}
onload = function()
{
var _try_messages = _try_data['message_list'];
var dm = try_bc_param["bc_list"];
var array = filterData(_try_messages, dm);
displayDiv(array);
}
</script>
</head>
<body>
</body>
</html>
angularjs读取json中的某个字段的方法是利用json的api实现的。
思路:先把js字符串转化成json结构,然后利用取属性运算符获取各个属性。
1、例如有以下json数据:
var data = {
"resultList": [
"{\"lookupKey\":2,\"clientKey\":1,\"codeName\":\"ApplicationAppType\",\"codeValue\":\"ApplicationType2\",\"codeDesc\":\"##\",\"updatedBy\":null,\"internalCodeName\":\"ApplicationAppType\"}",
"{\"lookupKey\":3,\"clientKey\":1,\"codeName\":\"ApplicationClass\",\"codeValue\":\"Tier 1\",\"codeDesc\":\"Critical Application requiring immediate response in case of a disruption of Service\",\"updatedBy\":null,\"internalCodeName\":\"ApplicationClass\"}"
]
};
2、利用angularfromJson解析代码如下:
$scoperesult = [
angularfromJson(dataresultList[0]),
angularfromJson(dataresultList[1])
];
alert($scoperesult[0]codeName);
结果是:ApplicationClass
3、这样就获取到了json字符串中的codeName的值。
以上就是关于从json数据中提取需要的部分 组成新的键值对全部的内容,包括:从json数据中提取需要的部分 组成新的键值对、JS中一个字符串如“[{},{},{}]”所示,大括号中是JSON键值对,请问 这个字符串中的数组如何提取出来呢,、如何在java中获取mysql5.7版本里的json-CSDN论坛等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)