Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Javascript 如何引用json的属性_Javascript_Json_Gmail Api - Fatal编程技术网

Javascript 如何引用json的属性

Javascript 如何引用json的属性,javascript,json,gmail-api,Javascript,Json,Gmail Api,Gmail API返回了以下结果。我想知道使用JSON对象的最佳方式是什么 {"result":{"messages":[{"id":"15d862a00074a324","threadId":"15d862a00074a324"},{"id":"15d8628752224d1b","threadId":"15d8628752224d1b"},{"id":"15d8231cfbca0608","threadId":"15d8231cfbca0608"},{"id":"15d812cb47b30f

Gmail API返回了以下结果。我想知道使用JSON对象的最佳方式是什么

{"result":{"messages":[{"id":"15d862a00074a324","threadId":"15d862a00074a324"},{"id":"15d8628752224d1b","threadId":"15d8628752224d1b"},{"id":"15d8231cfbca0608","threadId":"15d8231cfbca0608"},{"id":"15d812cb47b30f24","threadId":"15d812cb47b30f24"},{"id":"15d5e26548a7fe5b","threadId":"15d5e26548a7fe5b"}],"resultSizeEstimate":5},"body":"{\n \"messages\": [\n  {\n   \"id\": \"15d862a00074a324\",\n   \"threadId\": \"15d862a00074a324\"\n  },\n  {\n   \"id\": \"15d8628752224d1b\",\n   \"threadId\": \"15d8628752224d1b\"\n  },\n  {\n   \"id\": \"15d8231cfbca0608\",\n   \"threadId\": \"15d8231cfbca0608\"\n  },\n  {\n   \"id\": \"15d812cb47b30f24\",\n   \"threadId\": \"15d812cb47b30f24\"\n  },\n  {\n   \"id\": \"15d5e26548a7fe5b\",\n   \"threadId\": \"15d5e26548a7fe5b\"\n  }\n ],\n \"resultSizeEstimate\": 5\n}\n"}
我不熟悉JSON对象,但熟悉PHP对象和数组。我希望引用
resultSizeEstimate
并迭代id

我正在尝试
JSON.stringify(response.resultSizeEstimate)但是没有运气。有人能为我指出使用JSON对象的正确方向吗。我似乎找不到任何标准的方法

添加:这是我正在创建的函数,只是将输出添加到元素

  function getUnread() {
    gapi.client.gmail.users.messages.list({
      'userId': 'me',
      'q': 'is:unread in:inbox',
    }).then(function(response) {
      var unread = response;
      appendPre(JSON.stringify(response)); // Outputs JSON with string chars \n's
      console.log(JSON.parse(response)); // Errors as invalid JSON

    });
  }
编辑功能:这里是编辑后的工作功能供参考

  function getUnread() {
    gapi.client.gmail.users.messages.list({
      'userId': 'me',
      'q': 'is:unread in:inbox',
    }).then(function(response) {
      var unread = JSON.parse(JSON.stringify( response ));
      appendPre(unread.result.resultSizeEstimate);
    });
  }

您应该使用
JSON.parse
函数。它接受一个json,并返回一个对象

let json=`
{
“结果”:{
“信息”:[
{“id”:“15D862A000074A324”,“threadId”:“15D862A000074A324”},
{“id”:“15d8628752224d1b”,“threadId”:“15d8628752224d1b”},
{“id”:“15d8231cfbca0608”,“threadId”:“15d8231cfbca0608”},
{“id”:“15d812cb47b30f24”,“threadId”:“15d812cb47b30f24”},
{“id”:“15d5e26548a7fe5b”,“threadId”:“15d5e26548a7fe5b”}
],
“resultSizeEstimate”:5
}
}`;
让obj=JSON.parse(JSON);
log('resultSizeEstimate',obj.result.resultSizeEstimate);

log('messageid',obj.result.messages.map(msg=>msg.id))
您应该使用
JSON.parse
函数。它接受一个json,并返回一个对象

let json=`
{
“结果”:{
“信息”:[
{“id”:“15D862A000074A324”,“threadId”:“15D862A000074A324”},
{“id”:“15d8628752224d1b”,“threadId”:“15d8628752224d1b”},
{“id”:“15d8231cfbca0608”,“threadId”:“15d8231cfbca0608”},
{“id”:“15d812cb47b30f24”,“threadId”:“15d812cb47b30f24”},
{“id”:“15d5e26548a7fe5b”,“threadId”:“15d5e26548a7fe5b”}
],
“resultSizeEstimate”:5
}
}`;
让obj=JSON.parse(JSON);
log('resultSizeEstimate',obj.result.resultSizeEstimate);
log('messageid',obj.result.messages.map(msg=>msg.id))以“resultSizeEstimate”为例,您必须从“body”属性中读取它。
然后将body的值从字符串转换为对象。这是密码

var bodyStr=response.body;
var bodyObj=eval(bodyStr);//eval method can convert json str to an json object
var resultSizeEstimateVal=bodyObj.resultSizeEstimate;
我们可以做同样的事情来获取其他属性

以“resultSizeEstimate”为例,您必须从“body”属性中读取它。 然后将body的值从字符串转换为对象。这是密码

var bodyStr=response.body;
var bodyObj=eval(bodyStr);//eval method can convert json str to an json object
var resultSizeEstimateVal=bodyObj.resultSizeEstimate;

我们可以做同样的事情来获取其他属性

您可以使用PHP json_decode函数来实现这一点

$json_data = '{"result":{"messages":[{"id":"15d862a00074a324","threadId":"15d862a00074a324"},{"id":"15d8628752224d1b","threadId":"15d8628752224d1b"},{"id":"15d8231cfbca0608","threadId":"15d8231cfbca0608"},{"id":"15d812cb47b30f24","threadId":"15d812cb47b30f24"},{"id":"15d5e26548a7fe5b","threadId":"15d5e26548a7fe5b"}],"resultSizeEstimate":5},"body":"{\n \"messages\": [\n  {\n   \"id\": \"15d862a00074a324\",\n   \"threadId\": \"15d862a00074a324\"\n  },\n  {\n   \"id\": \"15d8628752224d1b\",\n   \"threadId\": \"15d8628752224d1b\"\n  },\n  {\n   \"id\": \"15d8231cfbca0608\",\n   \"threadId\": \"15d8231cfbca0608\"\n  },\n  {\n   \"id\": \"15d812cb47b30f24\",\n   \"threadId\": \"15d812cb47b30f24\"\n  },\n  {\n   \"id\": \"15d5e26548a7fe5b\",\n   \"threadId\": \"15d5e26548a7fe5b\"\n  }\n ],\n \"resultSizeEstimate\": 5\n}\n"};
$data = json_decode($json_data);
echo $data->resultSizeEstimate;

json_decode的作用是,它将获取json字符串,然后将其转换为PHP变量。

您可以使用PHP json_decode函数来实现这一点

$json_data = '{"result":{"messages":[{"id":"15d862a00074a324","threadId":"15d862a00074a324"},{"id":"15d8628752224d1b","threadId":"15d8628752224d1b"},{"id":"15d8231cfbca0608","threadId":"15d8231cfbca0608"},{"id":"15d812cb47b30f24","threadId":"15d812cb47b30f24"},{"id":"15d5e26548a7fe5b","threadId":"15d5e26548a7fe5b"}],"resultSizeEstimate":5},"body":"{\n \"messages\": [\n  {\n   \"id\": \"15d862a00074a324\",\n   \"threadId\": \"15d862a00074a324\"\n  },\n  {\n   \"id\": \"15d8628752224d1b\",\n   \"threadId\": \"15d8628752224d1b\"\n  },\n  {\n   \"id\": \"15d8231cfbca0608\",\n   \"threadId\": \"15d8231cfbca0608\"\n  },\n  {\n   \"id\": \"15d812cb47b30f24\",\n   \"threadId\": \"15d812cb47b30f24\"\n  },\n  {\n   \"id\": \"15d5e26548a7fe5b\",\n   \"threadId\": \"15d5e26548a7fe5b\"\n  }\n ],\n \"resultSizeEstimate\": 5\n}\n"};
$data = json_decode($json_data);
echo $data->resultSizeEstimate;

json_decode的作用是,它将获取json字符串,然后将其转换为PHP变量。

json.parse为我提供了未捕获的语法错误:json中位置1处的意外标记o。。。一个快速的google告诉我,我已经在使用一个json对象。是的,因为你的json字符串包含无效字符,例如
\n
。我已经减少了json字符串,所以现在json.parse可以解析它。感谢你的帮助,但我仍然想知道如何引用输出的属性。
JSON.parse的result.messages.id和result.resultSizeEstimate.result是一个对象,因此您可以直接使用它的属性:
obj.result.resultSizeEstimate
。要获取
消息的
id
,请使用本机数组方法
map
。JSON.parse为我提供了未捕获的语法错误:JSON中位置1处的意外标记o。。。一个快速的google告诉我,我已经在使用一个json对象。是的,因为你的json字符串包含无效字符,例如
\n
。我已经减少了json字符串,所以现在json.parse可以解析它。感谢你的帮助,但我仍然想知道如何引用输出的属性。
JSON.parse的result.messages.id和result.resultSizeEstimate.result是一个对象,因此您可以直接使用它的属性:
obj.result.resultSizeEstimate
。要获取
消息的
id
,请使用本机数组方法
map