解析包含多个元素的json文件



我被阻止在试图解析这个特定的json内容。

我可以解析内容,但我不知道如何遍历结果的每个元素,因为对象的每个元素的标题在结果

中发生了变化这是我在google app script中写的代码

function myFunction() {
var file = DriveApp.getFileById("1xqnMYtkZ2iST3xqzs_zKqHwzC017VHqd");
var text = file.getBlob().getDataAsString();
var json = JSON.parse(text);
Logger.log(json)
}

json的内容如下

{
"dlg-0093d9ca-b42d-4b3c-9a89-c872000915f6": [
{
"utteranceID": 0,
"speaker": "agent",
"source": "[F]text[/F]",
"target": ""
},
{
"utteranceID": 1,
"speaker": "customer",
"source": "Hi. I'm trying to buy movie tickets at the AMC Houston 8 in Houston, Texas.",
"target": ""
}
],
"dlg-00d44b07-4d5e-42ae-ba74-b445f1e23004": [
{
"utteranceID": 0,
"speaker": "agent",
"source": "Hi how are you?",
"target": ""
},
{
"utteranceID": 1,
"speaker": "customer",
"source": "Good. How are you?",
"target": ""
},
{
"utteranceID": 2,
"speaker": "agent",
"source": "Great, thanks for asking, how can I help you?",
"target": ""
}
],
"dlg-097887e5-303c-4757-80e6-dd4630621f09": [
{
"utteranceID": 0,
"speaker": "agent",
"source": "How can I help you?",
"target": ""
},
{
"utteranceID": 1,
"speaker": "customer",
"source": "Hi. I'm looking to book some movie tickets.",
"target": ""
},
{
"utteranceID": 2,
"speaker": "agent",
"source": "Okay what film did you want?",
"target": ""
},
{
"utteranceID": 3,
"speaker": "customer",
"source": "Glass.",
"target": ""
}
]

}

============

更新:我想要实现的是复制"source"的值元素,并返回一个新的json内容与更新后的内容。

期待您的回信。

对json对象进行简单的for循环将允许您遍历json的每个命名元素。传统的for循环迭代json中的每个键的对象数组,这将允许您执行编辑步骤。参见下面的代码:

for (key in json) {
the_array = json[key]
for (var i = 0, l = the_array.length; i < l; i++) {
item = the_array[i]
item.target = item.source
}
}
console.log(json)

最新更新