在我的json标签之间插入值

时间:2016-04-02 00:28:07

标签: 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 = $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;

我要做的是获取$array[0]['template']['cost']$array[0]['template']['name']并将它们传递到HTML片段(h1,span)之间的$json变量中。我怎样才能实现这一目标?

我尝试编码$array

$json_new = json_encode($array);

但变量出现在HTML片段之后......有没有办法在H1和SPAN标签之间传递它?

2 个答案:

答案 0 :(得分:0)

对于您在评论中提到的问题,您可以循环访问JSON,获取相关属性并像这样分配:

function mm(obj) {
 for (var prop in obj) {
   obj.name = "<h2>" +  obj.employees[0].firstName +"</h2>";
 }
  return obj;
}

console.log(mm(json));

使用JSBin https://jsbin.com/sefohu/edit?js,console

答案 1 :(得分:-1)

您可以使用: indexOf和slice

例如:

    $temp = document.createElement('template');
    $temp.innerHTML = $array[0]['template']['name'];
    $temp.getElementsByTagName('h1')[0].innerHTML = $array[0]['data']['name'];
    $array[0]['template']['name'] = $temp.innerHTML;

或使用temp方法:

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

并使用:

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),android.R.layout.simple_spinner_item,categories);