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);