Javascript JSON解析错误“;TypeError:undefined不是对象&引用;[对象]
我一直在尝试JSONParse这个RESTAPI,但没有任何运气。有人能看到我为什么一直得到[object]或未定义的错误吗Javascript JSON解析错误“;TypeError:undefined不是对象&引用;[对象],javascript,api,rest,jsonparser,Javascript,Api,Rest,Jsonparser,我一直在尝试JSONParse这个RESTAPI,但没有任何运气。有人能看到我为什么一直得到[object]或未定义的错误吗 <div id="store_1_name"></div> <div id="owner_1_name"></div> <div id="friend_1_name"></div> var raw_data_str
<div id="store_1_name"></div>
<div id="owner_1_name"></div>
<div id="friend_1_name"></div>
var raw_data_string = '{"2":[{"buy":[{"house":"loan","condo":{"USD":64311.9005450},"apartment":{}},{"house":"rent","condo":{"USD":2015.38570},"apartment":{}}]}';
var data = JSON.parse(raw_data_string);
for (var i in data) {
ParseUpdate(data[i].house, data[i].condo, data[i].apartment);
}
function ParseUpdate(house, condo, aparment) {
var house = data[i].house;
var condo = data[i].condo;
var apartment = data[i].buy.apartment;
}
document.getElementById("store_1_name").innerHTML = data[0].house;
document.getElementById("owner_1_name").innerHTML = data[0].condo;
document.getElementById("friend_1_name").innerHTML = data[0].apartment;
var raw_data_string={“2”:[{“购买”:[{“房屋”:“贷款”,“公寓”:{“美元”:64311.9005450},“公寓”:{},{“房屋”:“租金”,“公寓”:{“美元”:2015.38570},“公寓”:{}};
var data=JSON.parse(原始数据字符串);
用于(数据中的var i){
ParseUpdate(数据[i]。房屋,数据[i]。公寓,数据[i]。公寓);
}
功能更新(房屋、公寓、公寓){
var house=数据[i]。house;
var condo=数据[i]。condo;
var公寓=数据[i].buy.公寓;
}
document.getElementById(“store_1_name”).innerHTML=data[0]。house;
document.getElementById(“所有者名称”).innerHTML=data[0].condo;
document.getElementById(“friend_1_name”).innerHTML=data[0]。公寓;
谢谢大家
数据
结构并再次更正循环(for
)单元
是一个对象,但显示的是相同的字符串
document.getElementById(“friend_1_name”).innerHTML=data[0]。公寓;
将不起作用原始数据字符串中缺少一些结束括号。我建议。您在这里做错了很多事情。第一,JSON字符串无效。第二,您试图访问
for
循环中的错误元素。第三,数据[I]。如果您同时访问数据[I],那么buy.partment
就不存在.house
在同一个循环中,因为它们在同一个对象中,即buy
。第四,您试图在div的innerHTML
中显示JSON对象,您应该在其中访问要显示的字符串值或stringify
整个对象
var raw_data_string={“2”:[{“购买”:[{“房屋”:“贷款”,“公寓”:{“USD”:64311.9005450},“公寓”:{},{“房屋”:“租金”,“公寓”:{“USD”:2015.38570},“公寓”:{}};
var data=JSON.parse(原始数据字符串)[2][0]['buy'];
用于(数据中的var i){
ParseUpdate(数据[i]。房屋,数据[i]。公寓,数据[i]。公寓);
}
功能更新(房屋、公寓、公寓){
var house=数据[i]。house;
var condo=数据[i]。condo;
var公寓=数据[i]。公寓;
}
document.getElementById(“store_1_name”).innerHTML=data[0]。house;
document.getElementById(“所有者名称”).innerHTML=JSON.stringify(数据[0].condo);
document.getElementById(“friend_1_name”).innerHTML=JSON.stringify(数据[0].plant);
ParseUpdate应该做什么?现在,它什么都不做。我认为for(var I in data)
后面跟着data[I]
看起来是错误的,但我帮不了什么忙,因为我不知道你的代码应该做什么。你能在完整的错误消息中添加预期行为的描述吗?你的原始数据字符串
不是有效的JSON字符串请看。谢谢!这有助于解决我的问题。我没有意识到你必须在JSO之后添加数组信息N.parse[raw_data_string)一旦我修复了JSON数据,它就工作得很好!谢谢大家。很高兴我能提供帮助。请接受答案,如果有帮助,请投票
var raw_data_string =
'{"2":[{"buy":[{"house":"loan","condo":{"USD":64311.9005450},"apartment":{}},{"house":"rent","condo":{"USD":2015.38570},"apartment":{}}]}]}';
var data = JSON.parse(raw_data_string);
console.log(data);