Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSON的JavaScript编程逻辑_Javascript_Json_Logic - Fatal编程技术网

使用JSON的JavaScript编程逻辑

使用JSON的JavaScript编程逻辑,javascript,json,logic,Javascript,Json,Logic,我有一个JSON对象,如下所示: {"_id":"594fe31b3e158c0e70c9bb3e","deviceid":"342","alldata":"{\"deviceid\":\"342\",\"voltage\":\"14\",\"current\":\"9\",\"power\":\"92\",\"status\":\"1\"}","receivedon":"2017/06/25 21:51:47","__v":0} 问题是,当我试图输出obj.alldata.voltage时,

我有一个JSON对象,如下所示:

{"_id":"594fe31b3e158c0e70c9bb3e","deviceid":"342","alldata":"{\"deviceid\":\"342\",\"voltage\":\"14\",\"current\":\"9\",\"power\":\"92\",\"status\":\"1\"}","receivedon":"2017/06/25 21:51:47","__v":0}
问题是,当我试图输出
obj.alldata.voltage
时,它只给出空白;这让我认为
obj.alldata
是一个字符串,而不是JSON对象

当我打印
obj.alldata
时,它会给出如下输出:

{"deviceid":"342","voltage":"14","current":"9","power":"92","status":"1"}

如何正确使用
obj.receivedon
,以及
obj.alldata.voltage

删除
alldata
值的引号,这样它就不会被视为字符串

{ "_id": "594fe31b3e158c0e70c9bb3e", "deviceid": "342", "alldata": { "deviceid":"342","voltage":"14","current":"9","power":"92","status":"1"}, "receivedon": "2017/ 06 / 25 21: 51:47", "__v": 0 };
上面是一个散列或js对象,除了键“alldata”的值是json之外,您需要解析该json

data.alldata=JSON.parse(data.alldata)

在此之后,您的对象将如下所示

     { _id: "594fe31b3e158c0e70c9bb3e", 
       deviceid: "342", : 
       alldata: {
          deviceid: "342",
          voltage: "14",
          current: "9",
          power: "92",
          status: "1"
      }, 
     receivedon: "2017/06/25 21:51:47", __v: 0
    }

试试obj.alldata你应该在JS中使用parse()函数,数据就会变成一个JavaScript对象。“这让我觉得obj.alldata是一个字符串,而不是JSON对象”。没有JSON对象这样的东西。你必须了解你在和什么类型的人打交道。您要么有一个对象,要么有一个字符串(其中可能包含JSON,也可能不包含JSON)。您只能访问对象上的属性,而不能访问字符串上的属性。
     { _id: "594fe31b3e158c0e70c9bb3e", 
       deviceid: "342", : 
       alldata: {
          deviceid: "342",
          voltage: "14",
          current: "9",
          power: "92",
          status: "1"
      }, 
     receivedon: "2017/06/25 21:51:47", __v: 0
    }