我正在写一些Javascript:
它只替换第一个元素obj.verb。有人可以帮我弄清楚我在哪里得到语法或整体方法错了吗?请参阅下面的代码以及JSON文件在其下的样例。
{
"verb":"tenir",
"roles":[
{"name":"with whom"},
{"name":"thing held"},
{"name":"conductor"}
],
"srcLanguageSentence":{ "text":"Burmah said it had n't held any discussions with SHV and that `` no deal of any nature is in contemplation .",
"verb":{"text":"held","sense":"HOLD, conduct","beginOffset":24,"endOffset":28},
"roles":[
{"name":"with whom","text":"with SHV","beginOffset":45,"endOffset":53},
{"name":"thing held","text":"any discussions","beginOffset":29,"endOffset":44},
{"name":"conductor","text":"it","beginOffset":13,"endOffset":15}
]
},
"tgtLanguageSentences":[
{
"text":"Je tiens �galement � mentionner la r�cente Conf�rence , tenue au Canada , sur les enfants touch�s par la guerre .",
"verb":{"text":"tenue","beginOffset":57,"endOffset":62},
"roles":[
{"name":"thing held","text":"la r�cente Conf�rence , , sur les enfants touch�s par la guerre","beginOffset":33,"endOffset":112},
{"name":"location information","text":"au Canada","beginOffset":63,"endOffset":72}
]
}
]
上面引用的示例JSON文件。
<ListView>
<dd:MyDragDrop.DropBorders>
<Border Style="{StaticResource brdOneStyle}"/>
<Border Style="{StaticResource brdTwoStyle}"/>
<Border Style="{StaticResource brdThreeStyle}"/>
</dd:MyDragDrop.DropBorders>
</ListView>
}
答案 0 :(得分:0)
我想它应该是obj.roles[].name
而不是obj.roles[]
var finalXML = String(addedXML).replace(/RoleOne/g,obj.roles[0].name);
var finalXML = String(addedXML).replace(/RoleTwo/g,obj.roles[1].name);
var finalXML = String(addedXML).replace("RoleThree",obj.roles[2].name);
答案 1 :(得分:0)
obj.roles[0]
是一个对象{"name":"with whom"}
。你不能用对象替换字符串。
你需要参考财产&#34; name&#34;在对象中
obj.roles[0].name
另一个问题是var finalXML
每行获得一个新值。
你需要为变量添加一个新值,而不是重新赋值。
var finalXML = String(addedXML).replace(/VerbGoesHere/g,obj.verb)
.replace(/RoleOne/g,obj.roles[0].name)
.replace(/RoleTwo/g,obj.roles[1].name)
.replace("RoleThree",obj.roles[2].name);