我正在尝试解析Google Scripts中的JSON对象,但我似乎无法让它工作。
我试图解析的JSON看起来像这样
{
"keywords":[
{
"c":0.015165274822976534,
"monthly":[ ],
"kw":"handstand",
"n":60500,
"sb":0.3
}
],
"not_found":[
]
}
我似乎无法访问对象中的任何值。如果我使用JSON.parse()
,它似乎会创建一个非JSON对象。
var response = '{"keywords":[{"c":0.015165274822976534,"monthly":[
],"kw":"handstand","n":60500,"sb":0.3}],"not_found":[]}'
var obj = JSON.parse(response);
Logger.log(obj);
返回
{keywords=[{c=0.015165274822976534, monthly=[], kw=handstand, n=60500, sb=0.3}], not_found=[]}
这不会验证。
如果我尝试使用它,无论如何都会发生这种情况
var response = '{"keywords":[{"c":0.015165274822976534,"monthly":[
],"kw":"handstand","n":60500,"sb":0.3}],"not_found":[]}'
var obj = JSON.parse(response);
Logger.log(obj.keywords.n)
返回undefined
如果我不使用JSON.parse
并且只使用原始response
对象,我会收到以下内容:
var response = '{"keywords":[{"c":0.015165274822976534,"monthly":[ ],"kw":"handstand","n":60500,"sb":0.3}],"not_found":[]}'
Logger.log(response.keywords);
我得到undefined
我不确定我在哪里错了。任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
作为@Tanaike mentions,您的n
属性是keywords
数组中对象的属性。因此,要记录n的值,您需要 - 在将字符串解析为JSON之后 - 评估keywords
中的每个对象:
var response = '{"keywords":[{"c": 0.015165274822976534, "monthly": [ ], "kw": "handstand", "n": 60500, "sb": 0.3}], "not_found": []}'
var obj = JSON.parse(response);
// Log all values of n for each keyword:
obj.keywords.forEach(function (keyword) {
console.log("Word: " + keyword.kw + ", times used: " + keyword.n);
});