java - 将 Java 列表转换为 Javascript 数组

标签 java javascript android arrays list

我的 Android 应用程序中有以下 java 代码,并且想要一种将 Java 列表转换为可在 javascript 中使用的数组的方法:

Java:

public void onCompleted(List<GraphUser> users, Response response) {
    for(int i = 0; i < users.size(); i++)
    {
             //add to an array object that can be used in Javascript
             webView.loadUrl("javascript:fetchFriends(arrObj)");        
    }               
 }

Javascript:

  //this is how I want to be able to use the object in Javascript
    function parseFriends(usersObjectFromJava){
       var users = [];
        for (var i = 0; i < usersObjectFromJava.length; i++) {
            var u = {
                Id: usersObjectFromJava[i].id + "",
                UserName: usersObjectFromJava[i].username,
                FirstName: usersObjectFromJava[i].first_name,
                LastName: usersObjectFromJava[i].last_name,
            };
            users[i] = u;
        }
    }

有人可以帮助我使用 Java 代码创建 usersObjectFromJava 以便它可以在 javascript 中使用吗?

最佳答案

使用GSON 要将 java 对象转换为 JSON 字符串,您可以通过以下方式完成

Gson gson = new Gson();
TestObject o1 = new TestObject("value1", 1);
TestObject o2 = new TestObject("value2", 2);
TestObject o3 = new TestObject("value3", 3);

List<TestObject> list = new ArrayList<TestObject>();
list.add(o1);
list.add(o2);
list.add(o3);

gson.toJson(list) 会给你

[{"prop1":"value1","prop2":2},{"prop1":"value2","prop2":2},{"prop1":"value3","prop2":3}]

现在您可以使用 JSON.parse(),将 JSON 反序列化为 Javascript 对象。

关于java - 将 Java 列表转换为 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048962/

相关文章:

java - Intellij 模块在重建时被遗忘

java - 在句子末尾添加换行符

java - 在 sbt 中有效,但在原始 Java : after using `javac` to compile a . 类文件中无效,为什么 `java` 找不到它?

Android - 如何知道应用程序在后台后何时恢复

java - IntelliJ IDEA 方法名缩进

javascript - WebGL 不在某些设备上渲染纹理

Javascript 操作顺序问题

javascript - 带有 Ajax 的浏览器 "Busy State"

android - ViewPager多次调用--Android

android - 如何将编辑文本框光标设置为某个默认位置?