我在Gmail API中返回了以下结果。我想知道使用JSON对象的最佳方法是什么。
JSON.stringify(response.resultSizeEstimate);
我是JSON对象的新手,但我熟悉PHP对象和数组。我将要引用 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
});
}
并迭代id。
我正在尝试 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对象的正确方向。我似乎无法找到任何标准方式。
ADDED:这是我创建的函数appendpre只是输出到元素...
const Buttons = (props) => {
const questions = [
["56","30","11","20"],
["1","-2","2","-1"],
["odd","even","none","both"]
];
return (
<div>
{questions.map((question, i) => (
<div key={i}>
{question.map((answer, n) => (
<button key={n} onClick={() => alert(answer)}>
{answer}
</button>
))}
</div>
))}
</div>
);
};
ReactDOM.render(
<Buttons />,
document.getElementById('app')
);
EDITIED FUNCTION:这是编辑的工作函数供参考......
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
答案 0 :(得分:2)
您应该使用JSON.parse
功能。它接受一个json,并返回一个对象。
let 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
}
}`;
let obj = JSON.parse(json);
console.log('resultSizeEstimate', obj.result.resultSizeEstimate);
console.log('message ids', obj.result.messages.map(msg => msg.id));
答案 1 :(得分:0)
以“resultSizeEstimate”为例,您必须从“body”属性中读取它。 然后将body的值从string转换为对象。这是代码
var bodyStr=response.body;
var bodyObj=eval(bodyStr);//eval method can convert json str to an json object
var resultSizeEstimateVal=bodyObj.resultSizeEstimate;
我们可以做同样的事情来获得其他属性
答案 2 :(得分:0)
您可以使用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变量。