导航:首页 > 编程语言 > js如何解析json

js如何解析json

发布时间:2023-04-20 10:38:20

js面试题,ajax请求时,如何解释json数据

客户端HTML代码
<table>
<thead>
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>性别</td>
<td>电话</td>
</tr>
</thead>
<tbody></tbody>
<input id="btnget" type="button" value="加载数据" />
javascript代码:
$(function(){
$("#btnget").click(function(){
$.Ajax({
type:"post",
dataType:"Json",
url:"data.ashx",
success:function(msg){
var str="";
for(i in msg){
str+="<tr><td>"+msg[i].id+
"</td><td>"+msg[i].name+
"</td><td>"+msg[i].cla+
"</td><td>"+msg[i].sex+
"</td><td>"+msg[i].tel+
"</td></tr>";
}
$("tbody").append(str);
}
});
});
});
样式部分:
<style type="text/css">
table{
boeder-collapse:collapse;
}
table td{
text-align:center;
border:1px solid gray;
padding:3px 10px;
}
</style>
服务器端返回的json数据代码:
string data=[{\"id\":\"2010324268\",\"name\":\"林宇\",\"cla\":\"10软件\",\"sex\":\"男\",\"tel\":\"***********\"},{\"id\":\"2010324269\",\"name\":\"李四\",\"cla\":\"10网络\",\"sex\":\"男\",\"tel\":\"***********\"},{\"id\":\"2010324270\",\"name\":\"肖玲\",\"cla\":\"10网络\",\"sex\":\"女\",\"tel\":\"***********\"}];
context.Response.Write(data);

㈡ js中除了eval方法 还有什么方法来解析json

eval解析JSON中的注意点 在JS中将JSON的字符串解析成JSON数据戚察锋格式,一般有两种方式: 1.一种为使用eval()函数高晌。 2. 使用Function对象来进行返回解析没陪。 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法

㈢ 在js中怎么解析JsonObject对象数组

js和java中的json对象无法互相转换的吧(用struts2可以),可以在java中将对象转换为json字符串,传到js后,再在js中将json字符串转换成json对象
Java code
Map map1 = new HashMap();
Map map2 = new HashMap();

map1.put("id", 1);
map1.put("name", "张三");

map2.put("id", 2);
map2.put("name","李四");

List list = new ArrayList();
list.add(map1)
list.add(map2)

Map jsonMap = new HashMap();
jsonMap.put("jsonstr",list); //必须是map对象才能转换成json对象
JSONObject json = JSONObject.fromObject(map); //要用到json-lib-2.3-jdk15.jar
return json.toString();

记得引入json.js
JScript code
UserAction.getUser(function(result) { var jsonResult = JSON.parse(result);//如何不行用var jsonResult=JSON.parseJSON(),json版本问题 var resultList = jsonResult['jsonstr']; for(var one in resultList){ var item= resultList[one]; alert(item.id); alert(item.name); }

㈣ js解析Json需三层循环,有其他好的方法吗

使用递归颤碧或,下面慧野是一个JSON转String的函数应该会对你有所帮助

functionjsonToString(obj){
varTHIS=this;
switch(typeof(obj)){
case'string':
return'"'+obj.replace(/(["\])/g,'\$1')+'"';
case'array':
return'['+obj.map(THIS.jsonToString).join(',')+']';
case'object':
if(objinstanceofArray){
varstrArr=[];
varlen=obj.length;
for(vari=0;i<len;i++){
strArr.push(THIS.jsonToString(obj[i]));
}
return'['+strArr.join(',')+']';
}elseif(obj==null){
return'null';
}else{
varstring=[];
for(varpropertyinobj)string.push(THIS.jsonToString(property)+':'+THIS.jsonToString(obj[property]));
return'{'+string.join(',')+'}';
}
case'number':
returnobj;
casefalse:茄伍
returnobj;
}
}

㈤ JS解析json数据(如何将json字符串转化为数

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var t3="[['<a href=# onclick=openLink(14113295100,社旗县国税局桥头税务所,14113295100,,swjg_dm);>14113295100</a>','社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]";
//通过eval() 函数可以将JSON字符串转化为对象
var obj = eval(t3);
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。
var jsonText = JSON.stringify(obj);
alert(jsonText);
//如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。
var myObject = JSON.parse(myJSONtext, filter);
//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:
//如
myData = JSON.parse(text, function (key, value) {
return key.indexOf('date') >= 0 ? new Date(value) : value; });
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。
var myJSONText = JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

㈥ js怎么解析geojson 格式的

首先要理解什么是json,在js中json实际上就是一个对象了,可以通过jquery的方法将json转化成字符串,内或者容将字符串转化为json。

  1. $.parse(),这个方法可以把字符串转成Json。

  2. JSON.stringify()方法用于把json转成字符串。

js中一般可以直接对json进行操作的,比如一个json对象为:

var obj = {name:'abd'};

那么可以直接通过"."来获取对象的属性,

obj.name;//abd

就可以拿到对象的值了。

㈦ js解析json字符串报错解决方案(带有转义字符的json字符串)

场景:从后台请求回来的数据中带有json格式的字符串,需要处理成json对象才能进行操作。

JSON.parse():

        使用JSON.parse方法来解析json字符串。

   

报错:      Uncaught SyntaxError: Unexpected token } in JSON at position 30

                Uncaught SyntaxError: Unexpected token ' in JSON at position 1

           这种报错是由于,json字符串的格式有问题,json字符串中对象的最后一个元素后面不可以再加','逗号了。比如'{ "name": "cxh", "sex": "man",}'使用JSON.parse()就会报错,而且 在json字符串中键值对需要用双引号引起来。

解决方案:使用eval()

报错:SyntaxError: Unexpected token e in JSON at position 1

        由于请求回来的json中带有转义字符,所以才会报这个错误。

解决方案:带有转义字符的json字符串使用json

        json数据使用JSON.parse()有浏览器是不兼容JSON这个对象的,或者有的里面有JSON.parse解析不了的东西,所以暂时还是使用: eval("("+data+")");

        json源数据字符有转义符应该是必须的,你要看解析出来后是否有多余的转义符

json转字符串JSON.stringify总体效果还可以:

前导 0 和小数点报错:SyntaxError: JSON.parse: expected ',' or '}' after property value

                                      SyntaxError: JSON.parse: unterminated fractional number

                                     Uncaught SyntaxError: Unexpected number in JSON at position 25

                                     Uncaught SyntaxError: Unexpected token } in JSON at position 26

                                     

        数字不能用 0 开头,比如01,并且你的小数点后面必须跟着至少一个数字。

㈧ js怎么加载&解析json文件,原生的

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

本文主要是对JS操作JSON的要领做下总结。

在JSON中,有两种结构:对象和数组。

1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:

var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。

例如:

var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js

在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:

JSON字符串:

var str1 = '{ "name": "cxh", "sex": "man" }';

JSON对象:

var str2 = { "name": "cxh", "sex": "man" };

一、JSON字符串转换为JSON对象

要运用上面的str1,必须运用下面的要领先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);

特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

alert(last);

留心:

上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

㈨ js解析与序列化json数据(一)json.stringify()的基本用法

早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。
ECMAScript
5对解析JSON的行为进行了规范,定义了全局对象JSON。
JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如:
新建一个HTML:代码如下:
复制代码
代码如下:
<html>
<head>
<title></title>
<script
type="text/javascript">
function
init()
{
var
book={
title:"JavaScript高级程序设计",
authors:[
"Nicholas
C.
Zakas"
],
edition:3,
year:2011
};
var
jsonBook=JSON.stringify(book);
var
objectBook=JSON.parse(jsonBook);
var
title=objectBook.title;}
</script>
</head>
<body>
<input
type="button"
onclick="init()"
value="测试"
/>
</body>
</html>
默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进,因此保存在jsonBook中的字符串如下所示:
复制代码
代码如下:
{"title":"JavaScript高级程序设计","authors":["Nicholas
C.
Zakas"],"edition":3,"year":2011}
在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。
注意,虽然book与objectBook具有相同的属性,但它们是两个独立的、没有任何关系的对象。如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。

㈩ js解析json数据,并找出其中重复数据出现的次数!


<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<script>
functioncountJson(json){
if(""==json){
returnfalse;
}
varobj=eval("("+json+")"),len=obj.length,result=newArray();
for(vari=0;i<len;i++){
varid=obj[i].id;
if(result[id]){
result[id]=result[id]+1;
}else{
result[id]=1;
}
}
if(result.length>0){
returnresult;
}
return'统计无结果';
}

vara='[{"id":1,"name":"1"},{"id":2,"name":"2"},{"id":1,"name":"1"}]',
o=countJson(a),
k=o.length,
html="";
for(variino){
html+="id为"+i+"的有"+o[i]+"个<p>";
}
document.write(html);
</script>


这个函数的参数是传的json字符串,如果你传入的本身就是一个object,就把那段eval去掉

阅读全文

与js如何解析json相关的资料

热点内容
win10扫描的文件在哪里 浏览:615
pdf文件公章歪了怎么处理 浏览:322
java下载文件的路径 浏览:551
现在有哪些热门的软件编程 浏览:453
asp什么文件迅雷下载 浏览:381
巫妖王之怒升级路线 浏览:348
wps如何发送文件 浏览:359
网站怎么加流量 浏览:457
圣魔之光石破解版本 浏览:110
湖北文件柜多少钱一套 浏览:103
artlantis渲染器教程 浏览:679
360系统文件可以清理吗 浏览:256
extjsform样式 浏览:513
电信猫怎么设置wifi密码 浏览:785
p190文件用什么打开 浏览:252
怎么修改ps签署文件 浏览:847
怎么找到编程猫作品文件 浏览:647
铁路局的网站是多少 浏览:194
微信双号 浏览:926
招标文件中的净值是什么意思 浏览:675

友情链接