android - 如何使用Json解析?

标签 android json

以下是我的 Json 文件:-

"Restaurants":{

    "8":{
        "Res_name":"Purple Cafe and Wine Bar",
        "foodtype":"American, Wine",
        "city":"Seattle",
        "state":"WA",
        "latitude":"0",
        "longitude":"0"
    },
    "9":{
        "Res_name":"Quinn's",
        "foodtype":"American, Pubs",
        "city":"Seattle",
        "state":"WA",
        "latitude":"0",
        "longitude":"0"
    },
    "19":{
        "Res_name":"Dahlia Lounge",
        "foodtype":"American",
        "city":"Seattle",
        "state":"WA",
        "latitude":"0",
        "longitude":"0"
    },
},

我正在使用以下代码进行 json 解析:-

try {
    JSONObject jsonObj = new JSONObject(res);
    JSONObject mRestaurant = jsonObj.getJSONObject("Restaurants");
    String mResult = jsonObj.getString("Result");
    System.out.println("mRestaurant is:- " + mRestaurant);
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

mRestaurant 值(value)如下:-

{"487":{"state":"WA","Res_name":"SAM Taste","longitude":"0","latitude":"0","foodtype":"American","city":"Seattle"},"332":{"state":"WA","Res_name":"Luna Park Cafe","longitude":"0","latitude":"0","foodtype":"American","city":"Seattle"},"35":{"state":"WA","Res_name":"Restaurant Zoe","longitude":"0","latitude":"0","foodtype":"American, Bar","city":"Seattle"},"

但是从上面的响应中获取 Res_Name、foodtype 的下一步是什么。

如有任何帮助,我们将不胜感激。

最佳答案

下面的代码是json解析的下一步。

public void getdata() {
    String res = mWebRequest.performGet(Constants.url+ "restaurants.php? action=searchRestaurant&lat=0&lon=0&foodtype="+ mEdttxtSearch.getText().toString() + "&state="+ mEdttxtSearch.getText().toString() + "&city="+                                                                             mEdttxtSearch.getText().toString()+ "&devType=Android");
    System.out.println("res is:- " + res);
    if (res != null) {
        try {
            JSONObject jsonObj = new JSONObject(res);
            JSONObject mRestaurants = jsonObj.getJSONObject("Restaurants");
            String mResult = jsonObj.getString("Result");
            if (jsonObj.has("Restaurants")) {
                Iterator<Object> keys = mRestaurants.keys();
                while (keys.hasNext()) {
                    String key = (String) keys.next();
                    JSONObject obj = new JSONObject();
                    obj = mRestaurants.getJSONObject(key);
                    mRes_Name.add(obj.getString("Res_name"));
                    mLatitude.add(obj.getString("latitude"));
                    mLongitude.add(obj.getString("longitude"));
                    mState.add(obj.getString("state"));
                    mCity.add(obj.getString("city"));
                    mFood_Type.add(obj.getString("foodtype"));
                }
            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

关于android - 如何使用Json解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850213/

相关文章:

android - 约束布局 : center view on full screen but limit width to not overlap with side views

json - ListView 中的空对象引用

Android AppWidget 不更新

java - 使用 java 从动态 json 中查找键的值

ios - 无法在 swift 3 中发布请求参数?

json - Swift 3 使用 URLSession 将 JSON 解析为 UITableView

javascript - 使用react中的map函数迭代json文件

Android AES 加密 192 位 key

java - 比较 textview 和 JSONArray 中的值

android - 在android中的每个选项卡旁边添加按钮