我使用JSON格式的webservice从我的MySql DB和在线服务器上获取字符串。 当我在调试模式下看到它时,我能够看到Android Studio正确获取它。 但是当我继续将它添加到List列表中时,我什么都没得到。
以下是一些更多信息: 我得到了什么:
{"products":[{"veg_name_eng":"Corn","veg_name_hindi":"मक्का"}],"success":1}
我关注的是:“veg_name_hindi”:“मक्का”
当我继续尝试将其放入数据项列表时,我什么也得不到:
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编码。
我正在使用android studio。
更新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 :(得分:0)
首先,使用
创建一个JSON字符串的模型http://json2java.azurewebsites.net/
然后使用 Gson 将您的JSON字符串映射到您的模型。它易于使用。
获取此特定结果所需字符串的另一种方法是自己解析json字符串。
例如:
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拥有所需的数据。
答案 1 :(得分:0)
我发现,这是一个愚蠢的错误,我用来将数据放入数据库的变量被其他一些同名变量覆盖。暂时关闭线程。谢谢@ Umer-Farooq。