我正在使用 JSON 格式的网络服务从我的 MySql 数据库和在线服务器上获取一个字符串。 当我在 Debug模式下看到它时,我能够看到 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 数据库中,我使用的是 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);
}
最佳答案
首先,使用
为您的 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 有了所需的数据。
关于php - jsonObject.getString ("String in UTF8") 给出空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814749/