lib*_*bor 4 javascript json google-sheets google-apps-script
在谷歌电子表格单元格中我有这样的文本:
\n\n{"age_max":65,"age_min":18,"flexible_spec":[{"interests":[{"id":"6002867432822","name":"Beauty"},{"id":"6002991733794","name":"Beauty & Care"},{"id":"6003177110133","name":"Natural Beauty"},{"id":"6003211042524","name":"Health and Beauty Care"},{"id":"6003393295343","name":"Health And Beauty"},{"id":"6003460329503","name":"Beautiful Skin"},{"id":"6004111438209","name":"Facial care"}]}],"genders":[2],"geo_locations":{"countries":["SK"],"location_types":["home","recent"]},"locales":[2,33],"targeting_optimization":"none","publisher_platforms":["facebook"],"facebook_positions":["feed","right_hand_column","instant_article"],"device_platforms":["mobile","desktop"]};
它的 JSON 来自 Facebook API,从 Supermetrics 获取。
\n\n现在我想解析这个单元格,但是这个代码不起作用:-/
\n\n我在电子表格“=parseTargeting(A1)”中使用此函数
\n\n以及脚本编辑器中的此自定义函数。
\n\n function parseTargeting(jsonData) {\n\n\n\n\n var flexible_spec = jsonData["flexible_spec"];\n var maxAge = jsonData["age_max"];\n var minAge = jsonData["age_min"];\n\n var interestsBasics = jsonData["flexible_spec"][0]["interests"][0]["name"];\n\n\n var interestsBasicsCelkem = jsonData["flexible_spec"][0]["interests"].length-1;\n var interests = "";\n var output = [];\n\n for(var i = 0; i<=interestsBasicsCelkem; i++){\n\n interests += jsonData["flexible_spec"][0]["interests"][i]["name"]+ "\\n"; \n\n\n }\n\n var returnVek = "Vek:"+minAge + " - " + maxAge+" \\n";\n var returnInterests = "Z\xc3\xa1jmy:"+interests;\n\n\n var returnString = returnVek + returnInterests;\n\n\n\n return returnString;\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n该函数始终返回 Undefined。如果我添加这段代码
\n\n" var jsonData = {"age_max":65,"age_min":18,"flexible_spec":[{"interests":[{"id":"6002867432822","name":"Beauty"},{"id":"6002991733794","name":"Beauty & Care"},{"id":"6003177110133","name":"Natural Beauty"},{"id":"6003211042524","name":"Health and Beauty Care"},{"id":"6003393295343","name":"Health And Beauty"},{"id":"6003460329503","name":"Beautiful Skin"},{"id":"6004111438209","name":"Facial care"}]}],"genders":[2],"geo_locations":{"countries":["SK"],"location_types":["home","recent"]},"locales":[2,33],"targeting_optimization":"none","publisher_platforms":["facebook"],"facebook_positions":["feed","right_hand_column","instant_article"],"device_platforms":["mobile","desktop"]};\n"\nRun Code Online (Sandbox Code Playgroud)\n\n发挥作用 - 然后它的工作。但我需要这个函数来动态地从谷歌电子表格单元格中获取值。
\n\n我不明白:-/ 你能帮忙如何从 Google 电子表格单元格解析 JSON 吗?
\n这个示例脚本怎么样?对于您的 json 对象,位于;对象末尾。这样就无法解析了。所以;被删除并解析它。
function myFunction() {\n var ss = SpreadsheetApp.getActiveSheet();\n var obj = JSON.parse(ss.getRange("A1").getValue().replace(";", ""));\n var res = parseTargeting(obj);\n Logger.log(res)\n}\nRun Code Online (Sandbox Code Playgroud)\n\n如果我误解了你的问题,请告诉我。我想修改它。
\n\nfunction parseTargeting(range) {\n var content = JSON.parse(range.replace(";", "")); // Modified\n if( range != "undefined" ){\n var flexible_spec = content["flexible_spec"];\n var maxAge = content["age_max"];\n var minAge = content["age_min"];\n var interestsBasics = content["flexible_spec"][0]["interests"][0]["name"];\n Logger.log(interestsBasics);\n var interestsBasicsCelkem = content["flexible_spec"][0]["interests"].length-1;\n var interests = "";\n var output = [];\n for(var i = 0; i<=interestsBasicsCelkem; i++){\n interests += content["flexible_spec"][0]["interests"][i]["name"]+ "\\n"; \n }\n var returnVek = "Vek:"+minAge + " - " + maxAge+" \\n";\n var returnInterests = "Z\xc3\xa1jmy:"+interests;\n Logger.log(returnInterests);\n var returnString = returnVek + returnInterests;\n } else {\n var returnString = "No data";\n }\n return returnString; // Added\n}\nRun Code Online (Sandbox Code Playgroud)\n\nvar interestsBasics = content["flexible_spec"][0]["interests"][0]["name"];。flexible_spec因为value 中没有 的属性。| 归档时间: |
|
| 查看次数: |
45832 次 |
| 最近记录: |