我想解析并打印一个由PHP通过GET请求传递给JavaScript的对象数组成的JSON,我尝试了#34;标准方法"但我的代码不起作用(但使用简单的JSON)
PHP:
>
JavaScript的:
ob_start();
for ($i=0; $i<count($id); $i++){
$array[]=new Field($id[$i], $en[$i], $it[$i]);
}
print_r($array); // IT WORKS PROPERLY
ob_end_clean();
header('Content-Type: application/json');
echo json_encode($array);
这是一个关于如何通过echo打印JSON的例子:
$.get("../GetFieldsForLanguage.php", function(data, status){
var str = JSON.stringify(data);
console.log(str);
var form = JSON.parse(str);
var count = Object.keys(data).length;
for (var i=0; i<count; i++)
{
$('#it').append(
$('<tr />').append(
$('<th />', {text: form[i].**WHAT**}),
$('<th />').append(
$('<input />', { name: form[i]., placeholder: form[i]. type: 'text' })
)
)
)
}
答案 0 :(得分:0)
我认为$.getJSON就是你所追求的,例如。
$.getJSON( "../GetFieldsForLanguage.php", function( data ) {
var items = [];
var count = data.length;
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
希望这有帮助!
答案 1 :(得分:0)
很少有观察结果:
JSON.stringify(data)
和JSON.parse(str)
为data
已经是JSON对象?没有必要再次进行字符串化和解析。data
为array of objects
。那么,为什么是Object.keys(数据)?var count = Object.keys(data).length
它应该是var count = data.length
,因为数据是array
而不是JS object
。
var data = [{"ev":"Description","iv":"...","id":"1"},{"ev":"Surface","iv":"...","id":"2"},{"ev":"Locals","iv":"...","id":"3"}];
var count = data.length;
for (var i=0; i<count; i++)
{
$('#it').append(
$('<tr />').append(
$('<th />', {text: data[i].ev}),
$('<th />').append(
$('<input />', { name: data[i].ev, placeholder: data[i].iv, type: 'text' })
)
)
)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="it">
</div>
&#13;
答案 2 :(得分:0)
如果您的数据始终为array
:
var data = [
{"ev":"Description","iv":"...","id":"1"},
{"ev":"Surface" ,"iv":"...","id":"2"},
{"ev":"Locals" ,"iv":"...","id":"3"}
];
console.log(data);
data.forEach(function (value) {
$('#it').append(
$('<tr />').append(
$('<th />', {text: value.ev}),
$('<th />').append(
$('<input />', { name: value.id, placeholder: value.iv })
)
)
)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="it"></div>