如何转换从这种格式的服务器返回的数据
[{"Food":"orange","Protein":"52","Water":"52","Magnesium":"12","Phosphorus":"12","Sodium":"12.5","Zinc":"45","Vit_C":"12","Fat_Sat":"12","Fat_Mono":"45","Vit_B12":"45","Calcium":"45","Calories":"4565","Fiber":"12","Cholesterole":"12","Potassium":"12","Sugar_Tot":"55","Iron":"45","Folic_Acid":"55","carbohydrates":"55","Vit_K":"5","Serving_Size":"\u062d\u0628\u0629"}]
对此
"[{\"Food\":\"\\u062a\\u0641\\u0627\\u062d \\u0628\\u062f\\u0648\\u0646 \\u0627\\u0644\\u0642\\u0634\\u0631\\u0629\",\"Protein\":\"0.27\",\"Water\":\"86.67\",\"Magnesium\":\"4\",\"Phosphorus\":\"11\",\"Sodium\":\"0\",\"Zinc\":\"0.05\",\"Vit_C\":\"4\",\"Fat_Sat\":\"0\",\"Fat_Mono\":\"0\",\"Vit_B12\":\"0\",\"Calcium\":\"5\",\"Calories\":\"48\",\"Fiber\":\"1\",\"Cholesterole\":\"0\",\"Potassium\":\"90\",\"Sugar_Tot\":\"10.1\",\"Iron\":\"0.07\",\"Folic_Acid\":\"0\",\"carbohydrates\":\"13\",\"Vit_K\":\"0.6\"}]";
因为第一种格式在 emulator 2.2 中导致异常( parssingorg.json.JSONException: Value of type java.lang.String cannot be convert to JSONArray)
this is part of my code :
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"), 8);
sb = new StringBuilder();
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line);}
is.close();
result =sb.toString();
// result = result.replace('\"', '\'').trim();
Log.d("",result);
}
catch(Exception e){
Log.e("log_tag", "error" + e.toString());
}
Log.d("",result);
try{
jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
if(json_data!=null )
{
foodName=json_data.getString("Food");
Description=json_data.getInt("Calories");
item.setName(foodName);
item.setDescription(10);
item.setSelected(false);
MealActivity.foodList.add(item);
item=new ItemInList();