java 解析js的json数据
我从网页中抓到一个字符串,是js的json对象,例如aaa={x:"x",//xwhaty:"y",//ywhat}用java好像不能把这个new成jsonObject,...
我从网页中抓到一个字符串,是js的json对象,例如
aaa = {
x : "x", //x what
y : "y", //y what
}
用java好像不能把这个new成jsonObject,咋办,有没有简单的方法
这样的数据
{
x : "x", //x what
y : "y" //y what
} 展开
aaa = {
x : "x", //x what
y : "y", //y what
}
用java好像不能把这个new成jsonObject,咋办,有没有简单的方法
这样的数据
{
x : "x", //x what
y : "y" //y what
} 展开
推荐于2016-02-06 · 知道合伙人互联网行家
关注
展开全部
一、JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,
是理想的数据交换格式,同时,JSON是 JavaScript 原生格式。
非常适合于服务器与 JavaScript 的交互
二、如何使用
下面代码是html代码片段,实现点击按钮解析json格式数据并alert内容
<input type="button" value="button" onclick="clicks();"/>
下面是js函数代码:
var json = {
contry:{
area:{
man:"12万",
women:"10万"
}
}
};
//方式一:使用eval解析
var obj = eval(json);
alert(obj.constructor);
alert(obj.contry.area.women);
//方式二:使用Funtion函数
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//转换后的JSON对象
alert(obj.name);//json name
alert(obj.constructor);
//复杂一点的json数组数据的解析
var value1 = [
{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"},
{"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"},
{"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}
];
var obj1 = eval(value1);
alert(obj1[0].c01);
//复杂一点的json的另一种形式
var value2 = {
"list":[
{"password":"1230","username":"coolcooldool"},
{"password":"thisis2","username":"okokok"}
],
"array":[
{"password":"1230","username":"coolcooldool"},
{"password":"thisis2","username":"okokok"}
]
};
var obj2 = eval(value2);
alert(obj2.list[0].password);
}
4、eval
1这种形式将使得性能显著降低,因为它必须运行编译器
2eval函数还减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。就像with语句执行的方式一样,它降低了语言的性能
3Function构造器是eval的另一种形式,所以它同样也应该被避免使用。
是理想的数据交换格式,同时,JSON是 JavaScript 原生格式。
非常适合于服务器与 JavaScript 的交互
二、如何使用
下面代码是html代码片段,实现点击按钮解析json格式数据并alert内容
<input type="button" value="button" onclick="clicks();"/>
下面是js函数代码:
var json = {
contry:{
area:{
man:"12万",
women:"10万"
}
}
};
//方式一:使用eval解析
var obj = eval(json);
alert(obj.constructor);
alert(obj.contry.area.women);
//方式二:使用Funtion函数
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//转换后的JSON对象
alert(obj.name);//json name
alert(obj.constructor);
//复杂一点的json数组数据的解析
var value1 = [
{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"},
{"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"},
{"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}
];
var obj1 = eval(value1);
alert(obj1[0].c01);
//复杂一点的json的另一种形式
var value2 = {
"list":[
{"password":"1230","username":"coolcooldool"},
{"password":"thisis2","username":"okokok"}
],
"array":[
{"password":"1230","username":"coolcooldool"},
{"password":"thisis2","username":"okokok"}
]
};
var obj2 = eval(value2);
alert(obj2.list[0].password);
}
4、eval
1这种形式将使得性能显著降低,因为它必须运行编译器
2eval函数还减弱了你的应用的安全性,因为它给被求值的文本赋予了太多的权力。就像with语句执行的方式一样,它降低了语言的性能
3Function构造器是eval的另一种形式,所以它同样也应该被避免使用。
展开全部
与注释无关 A JSONObject text must begin with '{'
也就是说你给出的字符串必须是一个匿名字面量
把aaa= 去掉 这样
{
x : "x", //x what
y : "y", //y what
}
也就是说你给出的字符串必须是一个匿名字面量
把aaa= 去掉 这样
{
x : "x", //x what
y : "y", //y what
}
更多追问追答
追问
不行。。。
追答
肯定行我都试过了,你可能是把换行去掉了吧
String str="{x : \"x\", //x what\ny : \"y\" //y what\n}";
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用org.json、json-lib、xstream等开源类包的相关类处理。当然也可以自己写方法解析,把数据提取一个树形结构里,虽然这样做常常吃力不讨好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
aaa = {
x : "x", //x what
y : "y" //y what y后面不能有 ‘,’
}
x : "x", //x what
y : "y" //y what y后面不能有 ‘,’
}
追问
没有“,”。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询