Как получить доступ к JSON закодированным данным массива с помощью javascript
Как я могу получить доступ к этому ответу с сервера с помощью javascript.
Это json закодированные данные.
[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]
Спасибо заранее.
Это код ajax:
function cityauto(ctid){
var city = document.getElementById(ctid);
if(city.value.length > 3){
$.ajax({
type: "GET",
url: "city.php",
data: {term: city.value},
success: function (data){
alert(data);
}
});
}
Код HTML:
<input type="text" name="city" id="cty" onblur="cityauto(this.id);" />
onblur Я получаю выше ответ от php файла в окне предупреждения, теперь мне нужно получить доступ к этим значениям в javscript.
Ответы
Ответ 1
Предполагая, что JSON возвращается в виде строки:
var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';
// Parse the data as json
var obj = JSON.parse(data)
// Access the ojbect:
console.log(obj);
console.log(obj[0]); // == Object {cid: "1234", city: "value1", district: "value2", state: "value3"}
console.log(obj[0].cid); // == 1234
[0]
- это доступ к первому объекту внутри JSON, который является массивом. Затем вы просто добавляете .name
, где "name" - это имя требуемой переменной. (например, .cid
).
Если JSON уже является объектом, вы можете пропустить JSON.parse()
:
var obj = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];
И получите доступ к нему, как в примере выше.
(В этом случае этот вопрос больше связан с доступом к объектам JavaScript, а не JSON)
В вашем случае вы можете получить доступ к следующим данным:
success: function (data){
var obj = JSON.parse(data);
// Do stuff with `obj` here.
}
Ответ 2
Если это единственные данные ответа, вы можете получить доступ как:
var data = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];
console.log(data[0].cid);
# "1234"
Ответ 3
Если вы получите этот ответ со страницы, вы можете попробовать $.getJSON
с помощью jQuery
$.getJSON("yourwebsite.com/yourpage", function( data ) {
console.log(data);
});
Если вы хотите использовать его как переменную, из простого JSON (не относящегося к нему с другой страницы/запроса)
var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';
Затем вы можете использовать
$.each( data, function( key, val ) {
console.log(key + ":" + val);
});
для доступа к данным json в процедуре foreach
...
Или data[key].innerykey
например data[0].cid
0
- ваш первый массив данных, а .cid
- это ключ, который вы хотите получить, это может быть cid
city
или что угодно, если у вас больше, вы можете использовать другое число в data[X]