如果是前端ajax获取的,直接data['参数名']['参数名']就可以了;
如果是后台,需要比如$a = 刚才那个json值,$b = json_decode($a);如果输出echo $b->参数名->参数名;如果解析,$b['参数名']['参数名']
检查 JSON 格式是否正确,确保每个对象都有对应的键值对,并且所有字符串都使用双引号引用。
使用 JSON 验证工具来检查 JSON 数据是否有错误。
如果您使用的是第三方 API,检查 API 文档,看看是否有任何限制或错误代码的说明。
如果您使用的是第三方库来解析 JSON,检查是否已更新到最新版本。
如果您确信 JSON 格式是正确的,但仍然无法解析,请检查代码中是否有任何错误。
如果你在本地存储的json文件中出现问题,检查文件编码是否为UTF-8,如果不是,转换为UTF-8编码。
如果还是不行,可以尝试使用 try-catch 来捕获错误并打印错误信息,这样可以帮助你找到问题所在。
HTML5已原生支持json的解析,windowJSONparse()将json格式字符串转换为json对象,windowJSONstringify()将json对象转换为json格式字符串。
示例:Html代码
<!DOCTYPE HTML>
<html>
<head>
<title>WindowJSON</title>
<meta charset="gb18030">
</head>
<body>
<button type="button" id="btn1">解析json字符串</button>
<button type="button" id="btn2">json对象转换为json字符串</button>
<div id="res">
</div>
<script language="JavaScript">
<!--
var jsonStr = "{\"total\":100,\"data\":[{\"id\":10001,\"name\":\"scott\"},{\"id\":10002,\"name\":\"tiger\"}]}";
var jsonObj = windowJSONparse(jsonStr);
documentgetElementById("btn1")onclick = function() {
var str = "json字符串解析为json对象<br>";
str += "<span>Total:"+jsonObjtotal+"</span><br><span>Data:";
for (var i=0;i<jsonObjdatalength ; i++)
{
str += "id:" + jsonObjdata[i]id + ",name:" + jsonObjdata[i]name+"<br>";
}
str += "</span><br>";
documentquerySelector("#res")innerHTML = str;
}
documentgetElementById("btn2")onclick = function() {
var jsonObj = {total:100,data:[{id:10001,name:"scott"},{id:10002,name:"tiger"}]};
var jsonStr = windowJSONstringify(jsonObj);
var str = "转为json字符串:<br>" + jsonStr;
documentquerySelector("#res")innerHTML = str;
}
//-->
</script>
</body>
</html>
单击“解析json字符串”按钮,结果:
json字符串解析为json对象
Total:100
Data:id:10001,name:scott
id:10002,name:tiger
单击“json对象转换为json字符串”按钮,结果:
转为json字符串:
{"total":100,"data":[{"id":10001,"name":"scott"},{"id":10002,"name":"tiger"}]}
/简单的回了复杂的也就会了//其实,json实际上是用来统一数据格式,所以,在使用它时,肯定要设计一下格式,
当然,所谓的复杂,只是嵌套的层次深了。。。解析方式并没有变。。个人理解,如果觉得有价值就看,没价值,就当没看见吧。。
呵呵。。
/
import javautilArrayList;
import javautilHashMap;
import javautilIterator;
import javautilMap;
import netsfezmorphbeanMorphDynaBean;
import netsfjsonJSONArray;
import netsfjsonJSONSerializer;
/
@author John
/
public class JSONDemo {
public static final String PREFIX = "index_";
/
@param args
/
public static void main(String[] args) {
Map map = new HashMap();
String str ="[{'status': 5,'remarks': '\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90','session': \"(1, '92010', '192168177115', 1521L, 'ora9', 1, '')\",'vuls': [\"('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': \'['%E7%89%88%E6%9C%AC%E5%8F%B7']\', 'type': 1}])\",\"('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])\"], 'endTime':123}, 1L, '\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1']";
Systemoutprintln("json格式字符串-->"+str);
JSONArray array = JSONArrayfromObject(str);
Systemoutprintln("json格式字符串构造json数组元素的个数-->"+arraysize());
ArrayList list = (ArrayList) JSONSerializertoJava(array);
int i = 0;
for (Object obj : list) {
mapput(PREFIX+(i++), obj);
Systemoutprintln("第"+i+"对象-->"+obj);
}
//解析第0个位置
Map bd = new HashMap();
MorphDynaBean bean = (MorphDynaBean) mapget(PREFIX+0);
bdput("session", beanget("session"));
bdput("status", beanget("status"));
bdput("remarks", beanget("remarks"));
bdput("vuls", beanget("vuls"));
bdput("endTime", beanget("endTime"));
Iterator iter = bdkeySet()iterator();
while (iterhasNext()){
Object key = iternext();
Object value = bdget(key);
Systemoutprintln("MorphDynaBean对象-->key="+key+",value="+value);
}
//解析vuls
ArrayList vuls = (ArrayList) bdget("vuls");
Map vl = new HashMap();
int j = 0;
for (Object obj : vuls) {
vlput(PREFIX+(j++), obj);
Systemoutprintln("解析vuls的第"+i+"对象-->"+obj);
}
}
}
/
json格式字符串-->[{'status': 5,'remarks': '\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90','session': "(1, '92010', '192168177115', 1521L, 'ora9', 1, '')",'vuls': ["('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])","('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])"], 'endTime':123}, 1L, '\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1']
json格式字符串构造json数组元素的个数-->3
第1对象-->netsfezmorphbeanMorphDynaBean@94948a[
{session=(1, '92010', '192168177115', 1521L, 'ora9', 1, ''), status=5, remarks=·, vuls=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])], endTime=123}
]
第2对象-->1L
第3对象-->è
MorphDynaBean对象-->key=status,value=5
MorphDynaBean对象-->key=session,value=(1, '92010', '192168177115', 1521L, 'ora9', 1, '')
MorphDynaBean对象-->key=remarks,value=·
MorphDynaBean对象-->key=vuls,value=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])]
MorphDynaBean对象-->key=endTime,value=123
解析vuls的第3对象-->('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])
解析vuls的第3对象-->('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])
/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)