簡體   English   中英

如何在 Android Studio 中從沒有字符串 ID 的解析 JSON 中獲取字符串

[英]How to Get String From Parse JSON without String Id in Android Studio

如何從 Parse JSON 中獲取帶有如下數據的字符串?

我的數據 JSON:

[ 
   [ 
      "John Gorman",
      "3344764667200003",
      "Student",
      "2018-08-09 08:21:30.807"
   ],
   [ 
      "Andy William",
      "3403032311690003",
      "Student",
      "2018-08-09 08:21:30.807"
   ],
   [ 
      "Thomas Endry",
      "3408932311690078",
      "Student",
      "2018-08-09 08:21:30.807"
   ],
   [ 
      "Robet Calm",
      "3403077711690890",
      "Student",
      "2018-08-09 08:21:30.807"
   ]
]

我使用下面的代碼,然后得到字符串我要做什么,我真的不明白,如果有幫助,我真的需要謝謝你。

try {
    JSONObject object = new JSONObject(result);
    JSONArray jsonArray = object.getJSONArray("");
    //JSONArray jsonArray = new JSONArray(result);

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject c = jsonArray.getJSONObject(i);
        String name = c.getString("What should I write here");
        System.out.println(c.getString(""));
    }

我想從我擁有的 Parse JSON 中獲取字符串

如何獲取列表視圖的字符串,例如:

John Gorman
3344764667200003
Student

Andy William
3403032311690003
Student

Thomas Endry
3408932311690078
Student

Robet Calm
3403077711690890
Student

發布的代碼有一些問題。 請參閱我的內聯評論:

 JSONObject object = new JSONObject(result); ^^^^^^^^^^^^^^^^^^^^^^ the content of result is not an object, but an array. JSONArray jsonArray = object;getJSONArray(""); ^^ a proper JSON document had better not have empty keys; //JSONArray jsonArray = new JSONArray(result). ^^^^^^^^^^^^^^^^^^^^^ this was actually going in the right direction; for (int i = 0. i < jsonArray;length(), i++) { JSONObject c = jsonArray.getJSONObject(i); ^^^^^^^^^^^^^^^^^^^^^^^^^^ the i-th element of the array is not an object, but an array!

修復上述問題:

JSONArray jsonArray = new JSONArray(result);

for (int i = 0; i < jsonArray.length(); i++) {
  JSONArray subArray = jsonArray.getJSONArray(i);
  for (int j = 0; j < subArray.length(); j++) {
    System.out.println(subArray.getString(j));
  }
  System.out.println();
}

你可以這樣做:

try {
    JSONObject object = new JSONObject(result);
    JSONArray jsonArray = object.getJSONArray("");
    //JSONArray jsonArray = new JSONArray(result);

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject c = jsonArray.getJSONObject(i);
        String name = c.getString(0);
        String id = c.getString(1);
        String student = c.getString(2);
        // and so on ... This index refers to the index number on the string inside json object
        System.out.println(name);
    }

希望這能回答您的問題。

您收到的是 JSONArray 而不是 object 所以使用下面的代碼。

for(int i=0;i<jsonarray.length();i++){
   JSONArray array=jsonarray.getJSONArray(i);
     for(int j=0;j<array.length();j++){
     Log.d(TAG,array.getString(j));
   }
}

以下方法將從給定的 Json 構造一個字符串列表。 您可以在列表視圖的適配器中傳遞該列表。

public List<String> getList (String result) throws JSONException {
        List<String> list = new LinkedList<>();
        JSONArray jsonArray = new JSONArray(result);
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONArray arr = jsonArray.getJSONArray(i);
            StringBuilder sb = new StringBuilder();
            for(int j=0;j<arr.length(); j++) {
                sb.append(arr.getString(j));
                if(j<arr.length()-1) sb.append("\n");
            }
            list.add(sb.toString());
        }
        return list;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM