[英]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.