如何从 json 文件中获取每个值
how get each value from json file
我尝试将数据发送到 json 文件中的数据 table,如下所示:
我的 json 文件的示例数据:
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"q":"vba",
"indent":"true",
"fl":"name,role_t,born,natio_t",
"wt":"json"}},
"response":{"numFound":7,"start":0,"docs":[
{
"name":"Khouli",
"born":["1978-04-03T00:00:00Z"],
"natio_t":"tunisien",
"role_t":"Consultant"},
{
"name":"Atayi",
"born":["1987-06-24T00:00:00Z"],
"natio_t":"Francaise",
"role_t":"Consultant"}
}
这是我的职能:
$ ( document ).ready(function() {
$.ajax({
type: 'GET',
url: '../search.json',
success: function(data) {
$.each(data, function(i, data) {
var body = "<tr>";
body += "<td>" + data.name + "</td>";
body += "<td>" + data.born + "</td>";
body += "<td>" + data.natio_t + "</td>";
body += "<td>" + data.role_t + "</td>";
body += "</tr>";
$('.datatable-ajax-source table').append(body);
});
但我得到 table 未定义的值
如何从 json 个文件中获取此值
你没有告诉 jquery 你期待 json 回来,所以它接受了服务器响应中的 JSON 字符串作为纯文本,并将其传递给 data
为纯文本。
要么使用 .getJSON()
,它将响应自动解析为原生 JS 数据结构,要么
$.ajax(
...
dataType: "json"
...
);
您输入的数据似乎有误:此处更正数据:
{
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"q":"vba",
"indent":"true",
"fl":"name,role_t,born,natio_t",
"wt":"json"}},
"response":{"numFound":7,"start":0,"docs":[
{
"name":"Khouli",
"born":["1978-04-03T00:00:00Z"],
"natio_t":"tunisien",
"role_t":"Consultant"},
{
"name":"Atayi",
"born":["1987-06-24T00:00:00Z"],
"natio_t":"Francaise",
"role_t":"Consultant"}
]
}
}
处理此问题的正确 JS:
$(document).ready(function() {
$.ajax({
type: 'GET',
url: '../search.json',
success: function(data) {
// Data is the root node of your json response.
// You need to navigate through the "docs" node.
if(data.response.docs && data.response.docs.length > 0)
{
$.each(data.response.docs, function(i, item) {
var body = "<tr>";
body += "<td>" + item.name + "</td>";
body += "<td>" + item.born + "</td>";
body += "<td>" + item.natio_t + "</td>";
body += "<td>" + item.role_t + "</td>";
body += "</tr>";
$('.datatable-ajax-source table').append(body);
}
});
您没有获得 data
的正确值。
您应该得到 docs.data[i]
,在本例中,它是 .each()
.
中定义的 item
我尝试将数据发送到 json 文件中的数据 table,如下所示: 我的 json 文件的示例数据:
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"q":"vba",
"indent":"true",
"fl":"name,role_t,born,natio_t",
"wt":"json"}},
"response":{"numFound":7,"start":0,"docs":[
{
"name":"Khouli",
"born":["1978-04-03T00:00:00Z"],
"natio_t":"tunisien",
"role_t":"Consultant"},
{
"name":"Atayi",
"born":["1987-06-24T00:00:00Z"],
"natio_t":"Francaise",
"role_t":"Consultant"}
}
这是我的职能:
$ ( document ).ready(function() {
$.ajax({
type: 'GET',
url: '../search.json',
success: function(data) {
$.each(data, function(i, data) {
var body = "<tr>";
body += "<td>" + data.name + "</td>";
body += "<td>" + data.born + "</td>";
body += "<td>" + data.natio_t + "</td>";
body += "<td>" + data.role_t + "</td>";
body += "</tr>";
$('.datatable-ajax-source table').append(body);
});
但我得到 table 未定义的值
如何从 json 个文件中获取此值
你没有告诉 jquery 你期待 json 回来,所以它接受了服务器响应中的 JSON 字符串作为纯文本,并将其传递给 data
为纯文本。
要么使用 .getJSON()
,它将响应自动解析为原生 JS 数据结构,要么
$.ajax(
...
dataType: "json"
...
);
您输入的数据似乎有误:此处更正数据:
{
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"q":"vba",
"indent":"true",
"fl":"name,role_t,born,natio_t",
"wt":"json"}},
"response":{"numFound":7,"start":0,"docs":[
{
"name":"Khouli",
"born":["1978-04-03T00:00:00Z"],
"natio_t":"tunisien",
"role_t":"Consultant"},
{
"name":"Atayi",
"born":["1987-06-24T00:00:00Z"],
"natio_t":"Francaise",
"role_t":"Consultant"}
]
}
}
处理此问题的正确 JS:
$(document).ready(function() {
$.ajax({
type: 'GET',
url: '../search.json',
success: function(data) {
// Data is the root node of your json response.
// You need to navigate through the "docs" node.
if(data.response.docs && data.response.docs.length > 0)
{
$.each(data.response.docs, function(i, item) {
var body = "<tr>";
body += "<td>" + item.name + "</td>";
body += "<td>" + item.born + "</td>";
body += "<td>" + item.natio_t + "</td>";
body += "<td>" + item.role_t + "</td>";
body += "</tr>";
$('.datatable-ajax-source table').append(body);
}
});
您没有获得 data
的正确值。
您应该得到 docs.data[i]
,在本例中,它是 .each()
.
item