Javascript 在标记之间向我的json中插入值
我有以下代码:Javascript 在标记之间向我的json中插入值,javascript,php,json,Javascript,Php,Json,我有以下代码: $json = '[{"data":{"name":"Widget Shop USA","widget_a":300,"widget_b":250},"template":{"name":"<h1 class=\"name\"></h1>","cost":"<span class=\"cost\">Price: $</span>"}}]'; $array = json_decode($json, true); $widget_a
$json = '[{"data":{"name":"Widget Shop USA","widget_a":300,"widget_b":250},"template":{"name":"<h1 class=\"name\"></h1>","cost":"<span class=\"cost\">Price: $</span>"}}]';
$array = json_decode($json, true);
$widget_a = $array[0]['data']['widget_a'];
$widget_b = $array[0]['data']['widget_b'];
$data_name = $array[0]['data']['name'];
$array[0]['template']['cost'] .= $widget_a + $widget_b;
$array[0]['template']['name'] .= $data_name;
但是变量在HTML片段之后…有没有办法在H1和SPAN标记之间传递它?对于您在评论中提到的问题,您可以循环使用JSON,获取相关属性并按如下方式分配:
function mm(obj) {
for (var prop in obj) {
obj.name = "<h2>" + obj.employees[0].firstName +"</h2>";
}
return obj;
}
console.log(mm(json));
功能mm(obj){
用于(obj中的var prop){
obj.name=”“+obj.employees[0]。firstName+“”;
}
返回obj;
}
log(mm(json));
工作JSBin您可以使用:
索引和切片
例如:
$widget = $array[0].data.widget_a + $array[0].data.widget_b;
$data_name = $array[0].data.name;
$indexCost = $array[0].template.cost.indexOf('$<');
$array[0].template.cost = $array[0].template.cost.slice(0, $indexCost + 1) + $widget + $array[0].template.cost.slice($indexCost + 1, $array[0].template.cost.length);
$indexName = $array[0].template.name.indexOf('><');
$array[0].template.name = $array[0].template.name.slice(0, $indexName + 1) + $data_name + $array[0].template.name.slice($indexName + 1, $array[0].template.name.length);
alert($array[0].template.name);
alert($array[0].template.cost);
如果您可以更改json,我的建议是:
$json = '[{"data":{"name":"Widget Shop USA","widget_a":300,"widget_b":250},"template":{"nametag":"h1","nameclass":"name","costtag":"span","costclass":"cost"}}]';
和使用:
$array = JSON.parse($json);
$widget = $array[0].data.widget_a + $array[0].data.widget_b;
$array[0].template.cost = '<' + $array[0].template.costtag + ' class="' + $array[0].template.costclass + '" >' + $widget + '</' + $array[0].template.costtag + '>';
$array[0].template.name = '<' + $array[0].template.nametag + ' class="' + $array[0].template.nameclass + '" >' + $array[0].template.name + '</' + $array[0].template.nametag + '>';
alert($array[0].template.name);
alert($array[0].template.cost);
$array=JSON.parse($JSON);
$widget=$array[0]。data.widget_a+$array[0]。data.widget_b;
$array[0]。template.cost=''+$widget+'';
$array[0]。template.name=''+$array[0]。template.name+'';
警报($array[0].template.name);
警报($array[0].template.cost);
您从哪里获得json?它不是有效的JSON对象:使用验证器检查:假设我有这个JSON:{“employees”:[{“firstName”:“John”,“lastName”:“Doe”}],“name”:“}我如何将firstName传递到h2标记中..我想说..假设我们有一个正确的JSON文件..我想要的方法是什么?这个答案对你有用吗?
$json = '[{"data":{"name":"Widget Shop USA","widget_a":300,"widget_b":250},"template":{"nametag":"h1","nameclass":"name","costtag":"span","costclass":"cost"}}]';
$array = JSON.parse($json);
$widget = $array[0].data.widget_a + $array[0].data.widget_b;
$array[0].template.cost = '<' + $array[0].template.costtag + ' class="' + $array[0].template.costclass + '" >' + $widget + '</' + $array[0].template.costtag + '>';
$array[0].template.name = '<' + $array[0].template.nametag + ' class="' + $array[0].template.nameclass + '" >' + $array[0].template.name + '</' + $array[0].template.nametag + '>';
alert($array[0].template.name);
alert($array[0].template.cost);