我有这段代码:
$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标签之间传递它?
答案 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));
答案 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);