Javascript 如何从JSON获取特定数据?
如何从JSON中获取特定数据 JSON:Javascript 如何从JSON获取特定数据?,javascript,json,jquery,Javascript,Json,Jquery,如何从JSON中获取特定数据 JSON: [ { "TotalPageCount": 66 }, { "TotalTitleCount": 199 }, { "Title": "cola" }, { "Title": "elvis tom" }, { "Title":
[
{ "TotalPageCount": 66 },
{ "TotalTitleCount": 199 },
{ "Title": "cola" },
{ "Title": "elvis tom" },
{ "Title": "dvd" }
]
<script>
function updateTitlesArea() {
$.getJSON(
"/lates/json/",
null,
function(data) {
$("#titlesDiv").html("");
$("#pagesDiv").html("");
var x;
if (data.length > 0) {
for (x in data) {
$("#titlesDiv").html($("#titlesDiv").html() +
"<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
"</li>"
);
}
} else {
$("#titlesDiv").html("<li>no entry</li>");
}
});
}
</script>
Javascript代码:
[
{ "TotalPageCount": 66 },
{ "TotalTitleCount": 199 },
{ "Title": "cola" },
{ "Title": "elvis tom" },
{ "Title": "dvd" }
]
<script>
function updateTitlesArea() {
$.getJSON(
"/lates/json/",
null,
function(data) {
$("#titlesDiv").html("");
$("#pagesDiv").html("");
var x;
if (data.length > 0) {
for (x in data) {
$("#titlesDiv").html($("#titlesDiv").html() +
"<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
"</li>"
);
}
} else {
$("#titlesDiv").html("<li>no entry</li>");
}
});
}
</script>
我对json格式做了一个小改动,将totalpage和title count带到json的末尾
当前:
[
{ "TotalPageCount": 66 },
{ "TotalTitleCount": 199 },
{ "Title": "cola" },
{ "Title": "elvis tom" },
{ "Title": "dvd" }
]
<script>
function updateTitlesArea() {
$.getJSON(
"/lates/json/",
null,
function(data) {
$("#titlesDiv").html("");
$("#pagesDiv").html("");
var x;
if (data.length > 0) {
for (x in data) {
$("#titlesDiv").html($("#titlesDiv").html() +
"<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
"</li>"
);
}
} else {
$("#titlesDiv").html("<li>no entry</li>");
}
});
}
</script>
[{“标题”:“科拉”},{“标题”:“伊尔玛兹”
ozdil“},{“标题”:“dvd”},{“标题”:“真是疯了”
深深地“},{”头衔“:“拉科鲁纳的拉科鲁纳”},{”头衔“:“西子七号”
kisiyle Sevdiginazin Kisin farkli olmasi“},{“标题”:“kadinlarin bavul”
吉比·坎塔·塔西马拉利,{“头衔”:“霍斯布尔杜姆”},{“头衔”:“萨克”
西巴尼},{“头衔”:“梅夫西姆勒·格瑟肯”},{“头衔”:“比尔·凯雷德·科隆”
gibi sicmak,{“标题”:“gelismek”},{“标题”:“faz ve alasim”
bilimi,{“标题”:“memetq”},{“标题”:“ogrencilerin sinav kagidina”
dustugu ilginc notlar,{“标题”:“cami duvarina”
伊塞梅克},{“标题”:“kufurden sonra tovbe etmek”},{“标题”:“吉达塔里木”
我的名字是“cevre orman ve sehircilik”
bakanligi“},{“标题”:“google da nikah masasi”
calmak“},{“TotalPageCount”:9},{“TotalTitleCount”:199}]
通过我的代码和给出的示例,我仍然无法获得TotalPageCount和TotalTitleCount
作为记录:也许下次我可以在标题旁边添加更多属性。
所以我想保留json格式
感谢您的支持,这是一个数组,所以
if (data.length > 0) {
var obj = data[0]; // array, not object
for (key in obj) {
$("#titlesDiv").html(
$("#titlesDiv").html() +
"<li><a href=\"/" + obj[key].Title.replace(/ /g, '-') + "\">" +
obj[key].Title + "</a>" +
"</li>"
);
}
if(data.length>0){
var obj=data[0];//数组,而不是对象
对于(输入obj){
$(“#titlesDiv”).html(
$(“#titlesDiv”).html()+
“”+
“ ”
);
}
当您在数据中执行x时
会得到对象的每个键。因此,您必须简单地检查它是TotalPageCount
还是TotalTitleCount
<script>
function updateTitlesArea() {
$.getJSON(
"/lates/json/",
null,
function(data) {
var x, totalPageCount, totalTitleCount;
$("#titlesDiv").html("");
$("#pagesDiv").html("");
if (data.length > 0) {
for (x in data) {
if('TotalPageCount' == x) {
totalPageCount = data[x];
continue;
}
if('TotalTitleCount' == x) {
totalTitleCount = data[x];
continue;
}
$("#titlesDiv").html($("#titlesDiv").html() +
"<li><a href=\"/" + data[x].Title.replace(/ /g, '-') + "\">" + data[x].Title + "</a>" +
"</li>"
);
}
// You can do here whatever you want with 'totalPageCount' and 'totalTitleCount'
} else {
$("#titlesDiv").html("<li>no entry</li>");
}
});
}
</script>
函数updateTitlesArea(){
$.getJSON(
“/lates/json/”,
无效的
功能(数据){
var x,totalPageCount,totalTitleCount;
$(“#titlesDiv”).html(“”);
$(“#pagesDiv”).html(“”);
如果(data.length>0){
对于(数据中的x){
如果('TotalPageCount'==x){
totalPageCount=数据[x];
继续;
}
如果('TotalTitleCount'==x){
totalTitleCount=数据[x];
继续;
}
$(“#titlesDiv”).html($(“#titlesDiv”).html()+
“”+
“ ”
);
}
//您可以使用“totalPageCount”和“totalTitleCount”在此处执行任何操作
}否则{
$(“#titlesDiv”).html(“无条目” ”;
}
});
}
您使用jQuery对吗?您可以尝试以下方法:
var prom = $.getJSON('/lates/json/'),
ar;
prom.then(function (data) { ar = data; });
之后,您将在ar中拥有响应数组。您将能够以这种方式访问所需的值:
ar[0].TotalPageCount
ar[1].TotalTitleCount
我希望这会对您有所帮助。祝您好运。对于您当前的JSON格式,应该是这样的。不过,如果您可以更改JSON格式,那就更好了
<script>
function updateTitlesArea() {
$.getJSON(
"/lates/json/",
null,
function(data) {
$("#titlesDiv").html('<ul></ul>'); // <li> goes inside <ul> or <ol>
$("#pagesDiv").empty();
var has_titles = false;
for(var i = 0; i < data.length; i++) {
if("Title" in data[i]) {
$("#titlesDiv ul").append(
'<li><a href="/' + data[i].Title.replace(/ /g, '-') + '">' + data[i].Title + "</a>" +
"</li>"
);
has_titles = true;
}
}
if( !has_titles ) {
$("#titlesDiv ul").html("<li>no entry</li>");
}
}
);
}
</script>
函数updateTitlesArea(){
$.getJSON(
“/lates/json/”,
无效的
功能(数据){
$(“#titlesDiv”).html(“
”)/进入或
$(“#pagesDiv”).empty();
var具有_titles=false;
对于(变量i=0;i”+
“
”
);
has_titles=true;
}
}
如果(!有_标题){
$(“#titlesDiv ul”).html(“无条目” ”;
}
}
);
}
data[0].TotalPageCount不要在数组中使用,也不要使用$(“#titlesDiv”).html($(“#titlesDiv”).html()+
,因为它具有不必要的破坏性和低效性。我不敢相信回答者不会纠正这些模式。如果你控制JSON结构,一个更明智的方法可能是{TotalPageCount“:66,“TotalTitleCount”:199,“标题”:[“可乐”、“猫王汤姆”、“dvd”]}