2016-11-26 8 views
2

JSON形式のwebserviceを使用して、MySql DBのオンとオンラインサーバーから文字列を取得しています。 Androidスタジオがデバッグモードで正しく表示されているのを確認できました。 しかし、リストリストに追加すると、何も得られません。空白を与えるjsonObject.getString( "String in UTF8")

はここにいくつかの詳細情報です: 私は何を取得しています:「veg_name_hindi」:「मक्का」

私が先に行くと、データ項目の中に入れてみてください

{"products":[{"veg_name_eng":"Corn","veg_name_hindi":"मक्का"}],"success":1} 

私の懸念はしていますリスト、私は何も得ません:

public static List<DataItem> dataItemList; 
dataItemList.add(jsonObject.getString(veg_name_eng),jsonObject.getString(veg_name_hindi)) 

veg_name_engとveg_name_hindiは私のテーブルの列名です。

上記のコードの後、私はdataItemList = nullを取得するので、何も追加しません。

私のサーバー側のMySql DBでは、私はUTF-8エンコーディングを使用しています。

私はアンドロイドスタジオを使用しています。

UPDATE 1:

私はJSONをパースしています:

JSONObject jsonObject = new JSONObject(myJSONString); 
veg_list = jsonObject.getJSONArray("products"); 
try { 
    while (TRACK < veg_list.length()) { 
     JSONObject jsonObject = veg_list.getJSONObject(TRACK); 
     addItem(new DataItem(jsonObject.getString(veg_name_eng), jsonObject.getString(veg_name_hindi))); 
     TRACK = TRACK + 1; 
    } 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

//と、次のようにのaddItem機能は次のとおりです。まず

private static void addItem(DataItem item) { 
    dataItemList.add(item); //While Debugging, I can see that value of item is correct. (i.e., item: DataItem{veg_name_eng='Cork', veg_name_hindi='मक्का'}) 
    dataItemMap.put(item.getVeg_id(), item); 
} 
+0

[json_encodeエラーをチェック](http://stackoverflow.com/documentation/php/617/json/2637/debugging-json-errors)でしたか? – Machavity

+0

私は今すぐチェックしました。エラーはありません。オンラインDBのPHPスクリプトはうまく動作しており、正しいo/pを返しています。 –

答えて

0

のモデルを作りますあなたのJSON文字列を使用して

http://json2java.azurewebsites.net/

Gsonを使用してJSON文字列をモデルにマップします。使い方はとても簡単です。

この特定の結果に必要なStringを取得する別の方法は、json stringを自分で解析することです。例については

String vegNameEng,vegNameHindi; 

vegNameEng = vegNameHindi = ""; 

try{ 
    JSONObject obj = new JSONObject(yourJsonString); 
    JSONArray arr = obj.getJSONArray("products"); 
    vegNameEng = arr.getJSONObject(0).getString("veg_name_eng"); 
    vegNameHindi = arr.getJSONObject(0).getString("veg_name_hindi"); 
}catch(JSONException ex){ 

} 

今vegNameEngとvegNameHindiは、必要なデータを持っています。

+0

私はすでにJSON文字列にモデルを使用していましたが、DataItem.javaというクラスを作成しました。 Gsonを試してみよう。 –

+0

試してみてください。あなたはそれを取得します。代替ソリューションを試してみてください。単にあなたのJsonStringで上記のコードを使用すると、それぞれのフィールドにデータがあります。 –

+0

また、@ Umer-Farooq私は同様の方法でjsonを解析しています..詳しくは、メインスレッドのUpdate 1をチェックしてください。) –

0

私は、愚かな間違いで、私がデータベースにデータを入れるために使っていた変数が、同じ名前の他の変数によって上書きされていると考えました。今のところスレッドを閉じる。ありがとう@ Umer-Farooq。

関連する問題