I have defined a json array in a file as
{
mainServiceBar= [
{ "mainServiceName":"ECONOMIC SERVICES" , "mainServiceValue":"23.2" },
{ "mainServiceName":"SOCIAL SERVICES" , "mainServiceValue":"34.5" },
{ "mainServiceName":"DEFENSE" , "mainServiceValue":"4.5" },
{ "mainServiceName":"GENERAL PUBLIC SERVICES" , "mainServiceValue":"19" },
{ "mainServiceName":"DEBT BURDEN" , "mainServiceValue":"18.8" },
];
subServiceBar1: [
{ "subServiceName":"agriculture" , "subServiceValue":"12.5" },
{ "subServiceName":"trade" , "subServiceValue":"12.5" },
{ "subServiceName":"tourism" , "subServiceValue":"12.5" },
{ "subServiceName":"power and energy" , "subServiceValue":"12.5" },
{ "subServiceName":"water resource" , "subServiceValue":"12.5" }
{ "subServiceName":"munication roads" , "subServiceValue":"12.5" }
{ "subServiceName":"other economic services" , "subServiceValue":"12.5" },
{ "subServiceName":"subsidy" , "subServiceValue":"12.5" },
];
}
now i want these json arrays values in a javascript function , I have done few things but it I didn't get the values , my code is as follows :
function getJsonArray() {
return $.getJSON("myjson.js");
}
function socialservice(thisv) {
json = getJsonArray();
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
alert(item.mainServiceName);
}
}
return false;
}
**EDITED I have also tried this :
$.getJSON("myjson.json", function(data) {
alert("val");
var items = [];
$.each(data, function(key, val) {
alert(val);
});
});
but it do\esn't alert anything means it do not get json data
It alerts undefined , Please suggest me some way to get the values , Thanks
I have defined a json array in a file as
{
mainServiceBar= [
{ "mainServiceName":"ECONOMIC SERVICES" , "mainServiceValue":"23.2" },
{ "mainServiceName":"SOCIAL SERVICES" , "mainServiceValue":"34.5" },
{ "mainServiceName":"DEFENSE" , "mainServiceValue":"4.5" },
{ "mainServiceName":"GENERAL PUBLIC SERVICES" , "mainServiceValue":"19" },
{ "mainServiceName":"DEBT BURDEN" , "mainServiceValue":"18.8" },
];
subServiceBar1: [
{ "subServiceName":"agriculture" , "subServiceValue":"12.5" },
{ "subServiceName":"trade" , "subServiceValue":"12.5" },
{ "subServiceName":"tourism" , "subServiceValue":"12.5" },
{ "subServiceName":"power and energy" , "subServiceValue":"12.5" },
{ "subServiceName":"water resource" , "subServiceValue":"12.5" }
{ "subServiceName":"munication roads" , "subServiceValue":"12.5" }
{ "subServiceName":"other economic services" , "subServiceValue":"12.5" },
{ "subServiceName":"subsidy" , "subServiceValue":"12.5" },
];
}
now i want these json arrays values in a javascript function , I have done few things but it I didn't get the values , my code is as follows :
function getJsonArray() {
return $.getJSON("myjson.js");
}
function socialservice(thisv) {
json = getJsonArray();
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
alert(item.mainServiceName);
}
}
return false;
}
**EDITED I have also tried this :
$.getJSON("myjson.json", function(data) {
alert("val");
var items = [];
$.each(data, function(key, val) {
alert(val);
});
});
but it do\esn't alert anything means it do not get json data
It alerts undefined , Please suggest me some way to get the values , Thanks
Share Improve this question edited Sep 20, 2013 at 10:02 Darkzaelus 2,0951 gold badge16 silver badges31 bronze badges asked Sep 20, 2013 at 7:14 InforianInforian 1,7366 gold badges23 silver badges42 bronze badges 2- 3 incorrect json provided – Dart Commented Sep 20, 2013 at 7:29
- It is true that the json is incorrect but the function to read the json is also incorrect, see my answer. – Yussuf S Commented Sep 20, 2013 at 7:49
3 Answers
Reset to default 1please change your json file to below (it was wrongly formatted)
{
mainServiceBar: [
{ "mainServiceName":"ECONOMIC SERVICES" , "mainServiceValue":"23.2" },
{ "mainServiceName":"SOCIAL SERVICES" , "mainServiceValue":"34.5" },
{ "mainServiceName":"DEFENSE" , "mainServiceValue":"4.5" },
{ "mainServiceName":"GENERAL PUBLIC SERVICES" , "mainServiceValue":"19" },
{ "mainServiceName":"DEBT BURDEN" , "mainServiceValue":"18.8" }
],
subServiceBar1: [
{ "subServiceName":"agriculture" , "subServiceValue":"12.5" },
{ "subServiceName":"trade" , "subServiceValue":"12.5" },
{ "subServiceName":"tourism" , "subServiceValue":"12.5" },
{ "subServiceName":"power and energy" , "subServiceValue":"12.5" },
{ "subServiceName":"water resource" , "subServiceValue":"12.5" },
{ "subServiceName":"munication roads" , "subServiceValue":"12.5" },
{ "subServiceName":"other economic services" , "subServiceValue":"12.5" },
{ "subServiceName":"subsidy" , "subServiceValue":"12.5" }
]
}
also change the socialservice function code to below it was wrongly retrieving the values :
function socialservice(thisv) {
$.getJSON("myjson.js", function(json) {
for (key in json) {
$.each(json[key], function(k, arrayItem) {
alert(arrayItem.mainServiceName);
});
}
});
return false;
}
call the function with socialservice();
anywhere in your code.
Accordin with getJson doc you should write a callback in order to manipulate the data.
$.getJSON( "myjson.js", function( json ) {
for (var key in json) {
// code
}
});
NB: Your JSON code posted is invalid. There are a lot of errors. Try to replace with this:
{
"mainServiceBar": [
{ "mainServiceName":"ECONOMIC SERVICES" , "mainServiceValue":"23.2" },
{ "mainServiceName":"SOCIAL SERVICES" , "mainServiceValue":"34.5" },
{ "mainServiceName":"DEFENSE" , "mainServiceValue":"4.5" },
{ "mainServiceName":"GENERAL PUBLIC SERVICES" , "mainServiceValue":"19" },
{ "mainServiceName":"DEBT BURDEN" , "mainServiceValue":"18.8" }
],
"subServiceBar1": [
{ "subServiceName":"agriculture" , "subServiceValue":"12.5" },
{ "subServiceName":"trade" , "subServiceValue":"12.5" },
{ "subServiceName":"tourism" , "subServiceValue":"12.5" },
{ "subServiceName":"power and energy" , "subServiceValue":"12.5" },
{ "subServiceName":"water resource" , "subServiceValue":"12.5" },
{ "subServiceName":"munication roads" , "subServiceValue":"12.5" },
{ "subServiceName":"other economic services" , "subServiceValue":"12.5" },
{ "subServiceName":"subsidy" , "subServiceValue":"12.5" }
]
}
Change it to this:
function getJsonArray(){
$.ajax({
url : 'myjson.js',
type: 'GET',
success : socialservice
})
}
function socialservice(data){
json= data;
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
alert(item.mainServiceName); }}
return false;
}
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742281664a4414602.html
评论列表(0条)