簡體   English   中英

如何將JSON數組轉換為Java String數組

[英]How to convert JSON array to Java String array

我有一個php文件,可從特定列獲取所有行。 然后將結果放入數組,然后進行json_encoded。 當我敬酒php文件的輸出時,它將顯示具有正確值的JSON字符串。 我需要將其轉換為Java String數組,以便在單擊按鈕時可以逐個迭代它。
我在這里嘗試了多種解決方案,但無濟於事,因此不勝感激!

getImage.php

$sql = "SELECT advert_File_Path FROM Ads";
$result = $mysql_con->query($sql) or die('Query problem: '.mysqli_error($mysql_con));

//create array
$resultarray = array();

while($row = mysqli_fetch_assoc($result)){
    $resultarray[] = $row;
}
echo json_encode($resultarray);

MainActivity.java(僅相關代碼)

 private void loadNextAdvert()
{
    Toast.makeText(this, "Please wait, image may take a few seconds to load...", Toast.LENGTH_LONG).show();

    dbhelper = (DbHelper) new DbHelper(new DbHelper.AsyncResponse() {
        @Override
        public void processFinish(String output) {
            if(output.equalsIgnoreCase("exception") || output.equalsIgnoreCase("unsuccessful")){
                Toast.makeText(MainActivity.this, "Connection error", Toast.LENGTH_SHORT).show();
            }else{
                //initializes ArrayList
                stringList = new ArrayList<>();
                try {
                    //initializes JSONArray with output from php getImage file
                    jsonArray = new JSONArray(output);
                    if(jsonArray != null){
                        int len = jsonArray.length();
                        for(int i=0; i<len; i++){
                            stringList.add(jsonArray.get(i).toString());
                        }
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }
                Toast.makeText(MainActivity.this, String.valueOf(stringList), Toast.LENGTH_LONG).show();
            }
        }
    }).execute(loadPic);
}

應該顯示ArrayList內容的Toast僅顯示為[[]”。

設法自己解決。
所以這里

步驟1.我必須從php文件中刪除注釋的代碼,因為它以某種方式突破了,這就是JSON數組末尾的來源。

第2步。我必須從用於錯誤檢查的php文件中刪除其他回顯。 我想說的很對,您想要的唯一回聲就是json_encode。

步驟3.檢查Java中JSONarray的長度,並記錄為5,因此我現在知道它正確讀取了。

步驟4.添加了Pavneet_Singh的代碼段以替換stringList.add(jsonArray.get(i).toString()); stringList.add(jsonArray.getJSONObject(i).optString("advert_File_Path"));

步驟5.使用以下代碼將stringList從ArrayList轉換為String數組stringArray = new String[stringList.size()]; stringArray = stringList.toArray(stringArray); stringArray = new String[stringList.size()]; stringArray = stringList.toArray(stringArray);

快樂的時光! 我花了很長時間試圖弄清楚這一點,哈哈,前兩個步驟相當笨拙,但有時這是人生中最顯而易見的事情,最難找到。 希望這也可以幫助其他人!

使用stringList.add(jsonArray.getString(i));

嘗試這個:

JSONArray arr = new JSONArray(putNesessaryValueHere);
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr.length(); i++){
    list.add(arr.getJSONObject(i).getString("name"));
}
Try this : 

ArrayList<String> arrayList = new ArrayList<String>();
JSONArray jsonArray = new JSONArray();
for(int i = 0, count = jsonArray.length(); i< count; i++)
{
    try {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        arrayList.add(jsonObject.toString());
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}

暫無
暫無

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

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