Skip to content Skip to sidebar Skip to footer

Java: Convert String Representation Of Array Of Arrays To An List Of Objects

I have this String: [['username1','name1'],['username2','name2'],['username3','name3'], ...] And I want to get a List of User objects. What is a good way to do this? Thank you.

Solution 1:

User:

ClassUser {
    String username, name;

    publicvoidsetUsername(String username) {
        this.username = username;
    }

    publicvoidsetName(String name) {
        this.name = name;
    }

    publicStringgetUsername() {
        return username;
    }

    publicStringgetName() {
        return name;
    }
}

Convert JSON of 2D array to List:

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

Solution 2:

After many hours of my brain being boiled, I finally found a simple solution:

JSONArray array = newJSONArray(users);

List<UserEntity> userList = newArrayList<>();

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

return userList;

users here is the initial string, and len is the length of the array.

Solution 3:

This isn't a proper format to parse, i don't think it can be parsed with any proper way. The best thing I can suggest you is to break the String again and again with split function at "Bracket([)" and at "Inverted Comas ("")" by creating a logic to get all values one by one!

Post a Comment for "Java: Convert String Representation Of Array Of Arrays To An List Of Objects"