为了账号安全,请及时绑定邮箱和手机立即绑定

Parse json in Java android studio

Parse json in Java android studio

撒科打诨 2022-08-17 15:38:02
我有这个代码来解析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 字符串???
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

首先获取 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));


                        }


查看完整回答
反对 回复 2022-08-17
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

你解析了错误的 json。你的 json 以 jsonObject 而不是 jsonArray 开头。因此,在您的情况下,您必须像这样开始(假设您的onPostExecute方法的结果变量具有json字符串)

JSONObject mojNiz = new JSONObject(result);

现在,从上面的对象中,您可以获取json数组mojNiz


查看完整回答
反对 回复 2022-08-17
?
慕沐林林

TA贡献2016条经验 获得超9个赞

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

    try {

        JSONObject jsonObject = new JSONObject(s);

        jsonObject.getString("ime");

        jsonObject.getString("prezime");


        JSONArray jsonArray = jsonObject.getJSONArray("test");


        List<Integer> list = new ArrayList<>();

        for (int i = 0; i < jsonArray.length(); i++) {

            list.add((Integer) jsonArray.get(i));


        }


        JSONObject testObject = jsonObject.getJSONObject("test2");

        testObject.getString("1");

        testObject.getString("2");


    } catch (JSONException e) {

        e.printStackTrace();

    }


查看完整回答
反对 回复 2022-08-17
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号