java - 在Java android studio中解析json

标签 java android json

我有这段代码可以用 Java 解析 json,但问题是我的 json 看起来像这样

{"ime":"Alen","prezime":"Osmanagi\u0107","test":[1,2,3,4,5],"test2":{"1":"test","2":"555","test":"888","om":"hasd"}}

我的解析 java 代码如下所示:

protected void onPostExecute(String result) {
        pDialog.dismiss();
        runOnUiThread(new Runnable() {
            public void run() {

                ListView listView =(ListView)findViewById(R.id.jsonList);
                if ( true) {
                    try {
                       JSONArray mojNiz = response.getJSONArray("");

                        List<JSON> noviJSON = new ArrayList<>();
                        //Popuniti podacima
                        for (int i = 0; i < mojNiz.length(); i++) {
                            JSON jsonObj = new JSON();
                            JSONObject mojObj = mojNiz.getJSONObject(i);
                            jsonObj.setIme(mojObj.getString(KEY_NAME));
                           // jsonObj.setPrezime(mojObj.getString(KEY_DOB));
                          //jsonObj.setPrezime(mojObj.getString(KEY_DESIGNATION));
                            noviJSON.add(jsonObj);
                        }

                        adapter = new Adapter(noviJSON, getApplicationContext());

                        listView.setAdapter(adapter);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                } else {
                    Toast.makeText(MainActivity.this,
                            "Problem u loadiranjuz podataka",
                            Toast.LENGTH_LONG).show();

                }

如何解析这个特定的 json 字符串???

最佳答案

首先获取 JSONObject,然后获取其中的数组

JSONObject jsonObject = new JSONObject(jsonString);
String objectIme = jsonObject.getString("ime");
String prezime = jsonObject.getString("prezime");

上面的行将获取整个对象,从该对象中您可以获取其他对象以及数组 test1 和 test2 ,如下所示,然后您可以像您一样循环遍历该数组

    JSONArray jArray1 = new JSONArray(jsonObject.getJSONArray("test1"));
    JSONArray jArray2 = new JSONArray(jsonObject.getJSONArray("test2"));

 for (int i = 0; i < jArray1 .length(); i++) {
                            JSON jsonObj = new JSON();
                            JSONObject mojObj = jArray1.getJSONObject(i);
                            jsonObj.setIme(mojObj.getString(KEY_NAME));

                        }

关于java - 在Java android studio中解析json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55220248/

相关文章:

java - pom 中的 Maven 配置文件

json - 如何使用 Json 文件作为 Helm 的 Values 来源?

java - AsyncTask onPostExecute 错误中的新 Intent

java - 单击按钮时 Windows 未打开

android - 将retrofit 2中的公共(public)路径参数替换为okhttp

android - 如何获取Android系统语言中的Sunday,Monday ....和Saturday String?

android - 如何在 Android App 代码中隐藏导航栏

javascript - JavaScript 中 JSON 的过滤级别递归保留子级

javascript - BootGrid 示例 JSON 不起作用(带代码)

java - Selenium WebDriver - getCssValue() 方法