2017-05-25 69 views
0

的名單我有這個字符串:的Java:轉換數組的數組的字符串表示的對象

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

我想用戶對象的列表。

這樣做的好方法是什麼?

謝謝。

+0

你爲什麼要把它放在這種格式?如果只有一個JSON對象的數組,每個用戶都是簡單的,那會不會更容易? –

+0

你從哪裏得到這樣的字符串?如果內容處於某種標準格式(JSON/CSV等),解析內容會更容易。如果您確實擁有二維數組中的數據,請告訴我們。 –

+0

其實這看起來像是JSON中的2D數組.. – Floern

回答

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; 
    } 
} 

轉換JSON到列表:

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); 
} 
+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的長度。

+0

太棒了。你做到了。 :) –

0

這不是解析正確的格式,我不認爲它可以用任何適當的方式解析。我建議你最好的辦法是通過創建一個邏輯來逐個獲取所有值,在「Bracket([)」和「Inverted Comas(」「)」中使用split函數一次又一次地打破字符串!

+0

幸運的是,它確實工作!看到我上面的答案如果你感興趣 –

+0

這很有趣! –

相關問題