我有一个名为json的String
,其值为ArrayList
。我用Gson将arraylist转换为json。我将json从servlet传递给javascript作为POST
中的响应。
我在js中得到["1.343","73.6544","32.6454","34.453","43.565","23.454"]
的回复。如何使用变量单独访问js中的这些值(这些是位置坐标)。我想使用这些值来显示地图中的位置。
如何在js中访问这些值。在js中获得的值是包含arraylist的字符串。我用gson转换成字符串。
这是js:
<script>
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var data = xhr.responseText;
data.toString();
alert(data);
}
}
xhr.open('POST', 'GetLocationFromDB', true);
xhr.send(null);
</script>
data
是来自servlet的值。
小服务程序:
String json = new Gson().toJson(arraylist);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
答案 0 :(得分:0)
将响应解析为Json,您将可以访问元素
var json = JSON.parse(data);
在这里阅读更多关于JSON.parse的内容。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
作为JSON.parse如何工作的简单测试。
var x = JSON.parse('["1.343","73.6544","32.6454","34.453","43.565","23.454"]');
alert(x[0]) // alerts with 1.343
这是你应该拥有的。
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var json = JSON.parse(xhr.responseText);
console.log(json);
//or if you like alerts
alert(json);
}
}
xhr.open('POST', 'GetLocationFromDB', true);
xhr.send();
答案 1 :(得分:0)
您必须解析data
。
JSON.parse()
用于将JSON文本字符串解析为javascript对象,JSON.stringify
用于将Javascript对象解析为JSON文本。