如何使用ajax解析json数组?

4

在Servlet端,我将2个JSON String对象写入JSON数组:

Gson data = new Gson();
JsonArray arr = new JsonArray();

JsonObject obj1 = new JsonObject();
JsonElement element = data.toJsonTree(imgstr);
obj1.add("image", element);
arr.add(obj1);

JsonObject obj2 = new JsonObject();
JsonElement element1 = data.toJsonTree(strBuf);
obj2.add("html", element1);
arr.add(obj2);

out.write(arr.toString());

Ajax。我收到了那个数组:
done(function(result) {
    console.log(result);
})

这显示了[{"image":"myImageString"},{"html":"myHtmlString"}]

如何单独获取这些字符串?以下方法不起作用:

var image=result.image;
var html=result.html;
2个回答

2

在这种情况下,您的结果是一个对象数组。因此,您应该将它们作为数组访问:

var image=result[0].image;
var html=result[1].html;

最好只返回一个对象:

                    JsonObject obj1 = new JsonObject();
                    JsonElement element = data.toJsonTree(imgstr);
                    obj1.add("image", element);
                    obj1.add("html", element1

                    out.write(obj1.toString());

在这种情况下,您建议的代码是什么?
var image=result.image;
var html=result.html;

将起作用。


1
如果您发送一个数组,您必须通过索引从数组中检索对象,例如:
var image=result[0].image;

但如果你想通过名称获取对象,就像这样:
var image=result.image;

你必须发送 JsonObject 而不是 JsonArray


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接