Java:将数组数组的字符串表示形式转换为对象列表

时间:2017-05-25 19:09:24

标签: java android

我有这个字符串:

[["username1","name1"],["username2","name2"],["username3","name3"], ...]

我想获得一个用户对象列表。

这样做的好方法是什么?

谢谢。

3 个答案:

答案 0 :(得分:1)

经过几个小时的大脑煮沸后,我终于找到了一个简单的解决方案:

JSONArray array = new JSONArray(users);

List<UserEntity> userList = new ArrayList<>();

for (int i=0; i<len; i++) {
     JSONArray jsonUser = array.getJSONArray(i);
     UserEntity user = new UserEntity();
     user.setUsername(jsonUser.getString(0));
     user.setName(jsonUser.getString(1));
     userList.add(user);
}

return userList;

users这里是初始字符串,lenarray的长度。

答案 1 :(得分:1)

用户:

Class User {
    String username, name;

    public void setUsername(String username) {
        this.username = username;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUsername() {
        return username;
    }

    public String getName() {
        return name;
    }
}

将2D数组的JSON转换为List:

String json = [["username1","name1"],["username2","name2"],["username3","name3"], ...]
List<User> userList = new ArrayList<>();
JSONArray array = new JSONArray(json);
int count = array.length();
for(int i = 0; i < count; i++) {
    JSONArray innerArray = array.getJSONArray(i);
    User user = new User();
    user.setUsername(innerArray[0]);
    user.setName(innerArray[1]);
    userList.add(user);
}

答案 2 :(得分:0)

这不是一个正确的解析格式,我不认为它可以用任何正确的方法解析。我能建议你做的最好的事情是通过创建逻辑来逐个获取所有值,在“Bracket([)”和“Inverted Comas(”“)”中使用split函数一次又一次地破坏String!