在JavaScript中访问json字符串

时间:2016-03-11 08:34:46

标签: javascript java json servlets arraylist

我有一个名为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);

2 个答案:

答案 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文本。