Javascript JSON解析错误“;TypeError:undefined不是对象&引用;[对象]

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

我一直在尝试JSONParse这个RESTAPI,但没有任何运气。有人能看到我为什么一直得到[object]或未定义的错误吗

    <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]。公寓;
谢谢大家

  • 您的json字符串无效
  • 检查
    数据
    结构并再次更正循环(
    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);