2016-12-10 2 views
1

Я новичок в javascript, и у меня есть Json Array в URL-адресе, как показано ниже;Как получить доступ к массиву JSON непосредственно из url

[{"year":2015,"month":4,"day":1,"num":0,"time":"2015-04-01","hour":0,"zone":3,"state1":2137,"state2":249,"state3":1810,"state4":30,"state5":0},....] 

Я хочу, чтобы получить доступ к значению State1 и присвоить это значение переменного, которую я have.How я могу это сделать? (Is разбор необходим или есть какие методы там, что мы можем непосредственно получить доступ к объекту JSON в URL). Мне жаль, если я спросил что-то не так.

+2

Используйте ajax для загрузки [load json from url] (http://stackoverflow.com/questions/12460378/how-to-get-json-from-url-in-javascript) и проанализируйте ответ с помощью JSON. parse(). Если у вас возникли какие-либо проблемы с этим, сообщите нам, как вы написали свой код для этого. Мы могли бы помочь вам исправить это. –

+0

Как вы получаете URL? – guest271314

+0

@ guest271314 Я извлекаю его из определенного источника данных и сохраняю его в этом URL-адресе. – RKR

ответ

4

Вы можете использовать JQuery getJSON() функцию:

$.getJSON(' localhost:8080/dataurl', function(data) { 
    //data is the JSON string 
    var jsonObj = JSON.parse(data);  
}); 

Теперь Ниже приведены методы для анализа jsonObj получить state1.

Используя метод массиву map():

var jsonObj = [ 
 
       { 
 
        "year":2015, 
 
        "month":4, 
 
        "day":1, 
 
        "num":0, 
 
        "time":"2015-04-01", 
 
        "hour":0, 
 
        "zone":3, 
 
        "state1":2137, 
 
        "state2":249, 
 
        "state3":1810, 
 
        "state4":30, 
 
        "state5":0 
 
       }, 
 
       { 
 
        "year":2016, 
 
        "month":12, 
 
        "day":1, 
 
        "num":0, 
 
        "time":"2015-04-01", 
 
        "hour":0, 
 
        "zone":3, 
 
        "state1":2474, 
 
        "state2":250, 
 
        "state3":1811, 
 
        "state4":31, 
 
        "state5":0 
 
       } 
 
       ]; 
 

 
var state1arr = jsonObj.map(function(item) { 
 
    return item.state1; 
 
}); 
 

 
console.log(state1arr);

используя for...in цикл:

var jsonObj = [ 
 
       { 
 
        "year":2015, 
 
        "month":4, 
 
        "day":1, 
 
        "num":0, 
 
        "time":"2015-04-01", 
 
        "hour":0, 
 
        "zone":3, 
 
        "state1":2137, 
 
        "state2":249, 
 
        "state3":1810, 
 
        "state4":30, 
 
        "state5":0 
 
       }, 
 
       { 
 
        "year":2016, 
 
        "month":12, 
 
        "day":1, 
 
        "num":0, 
 
        "time":"2015-04-01", 
 
        "hour":0, 
 
        "zone":3, 
 
        "state1":2474, 
 
        "state2":250, 
 
        "state3":1811, 
 
        "state4":31, 
 
        "state5":0 
 
       } 
 
       ]; 
 

 
var state1arr = []; 
 
for (var i in jsonObj) { 
 
    state1arr.push(jsonObj[i].state1); 
 
} 
 

 
console.log(state1arr);

0

данные у вас есть массив объектов, и вы должны тросик, чтобы получить доступ к каждому объекту и получить доступ к ключу, используя точечную нотацию

Подобно этому,

var app=[{"year":2015,"month":4,"day":1,"num":0,"time":"2015-04-01","hour":0,"zone":3,"state1":2137,"state2":249,"state3":1810,"state4":30,"state5":0}]; 
for(var i of app) 
{ 
console.log(i.state1); 
} 
+0

Вы можете просто получить доступ к JSON var в js, как и с помощью переменной объекта javascript. вам не нужно использовать петли. –

1

Просто используйте следующий JS код:

var getJSON = function(url) { 
    return new Promise(function(resolve, reject) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('get', url, true); 
    xhr.responseType = 'json'; 
    xhr.onload = function() { 
     var status = xhr.status; 
    if (status == 200) { 
     resolve(xhr.response); 
     } else { 
     reject(status); 
     } 
    }; 
    xhr.send(); 
    }); 
}; 

Теперь вы можете использовать функцию, чтобы получить содержимое JSON из URL:

getJSON("<URL>").then(function(data) { // Replace <URL> With your URL 
    var jsondata = data.result; //store result in variable 

    // Your code here..../// 
    /// Now you can access the json's data using jsondata variable: // 
    // jsondata[0].year will have the value of year key, jsondata[0].month will have month key and so on.... // 

}, function(status) { //error detection.... 
    alert('Something went wrong.'); 
});