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

使用java访问json对象中的列表

使用java访问json对象中的列表

料青山看我应如是 2021-06-17 14:06:41
我有以下 json 字符串,并想使用 Java 访问 alsoKnownAs 列表。我可以使用 getString 作为名称,我已经为 alsoKnownAs 尝试过 getJSONArray 但它并没有完全锻炼{\"name\":\"moses\",\"alsoKnownAs\":[\"njai\", \"njenga\",\"musa\"]}我可以访问下面的名称,但我不能使用等效的 getString 方法返回字符串列表或等效的 getJSONArray 以获取字符串列表    public static Person parsePersonJson(String json) {            JSONObject currentPerson;            String name;            try {                currentPerson = new JSONObject(json);                // so I can access the name like                name = currentPerson.getString("name");               //I was trying this to get the list but figure out I was using a list of json objects, so not how to get the list of stings           JSONArray arrayKnownAs = names.getJSONArray("alsoKnownAs");                List<String> alsoKnownAs= new ArrayList<>();                for (int i = 0, l = arrayKnownAs.length(); i < l; i++) {                    String origin;                    origin = arrayKnownAs[i];                    alsoKnownAs.add(origin);                }               Person thisPerson =  new Person(                //I instantiate person object here                );                return thisPerson;            } catch (org.json.JSONException e) {    // error            }            return null;        }
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

如果其他人被困在这里,结果证明我在正确的轨道上,我可以使用 getJSONArray 访问列表,但是在为每个成员迭代时,我使用 getString


 public static Person parsePersonJson(String json) {


            JSONObject currentPerson;

            String name;


            try {

                currentPerson = new JSONObject(json);


                // so I can access the name like


                name = currentPerson.getString("name");


                List<String> alsoKnownAs= new ArrayList<>();


                //use getJSONArray to get the list


                JSONArray arrayKnownAs = currentPerson.getJSONArray("alsoKnownAs");


                for (int i = 0, l = arrayKnownAs.length(); i < l; i++) {


                 //This is where I was getting it wrong, i needed to use getString to access list items


                  alsoKnownAs.add(arrayKnownAs.getString(i));

                   }




               Person thisPerson =  new Person(


                //I instantiate person object here


                );

                return thisPerson;


            } catch (org.json.JSONException e) {

             // error

            }

            return null;

        }


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信