gpt4 book ai didi

android - 如何在 android 中使用 Jackson 解析 json 响应?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:14 26 4
gpt4 key购买 nike

我通过点击 url 得到一些 json 响应。我想使用 jackson 来解析 json 响应。我尝试使用对象映射器,但出现异常。

json:

{
"contacts": [
{
"id": "c200",
"name": "ravi raja",
"email": "raja@gmail.com",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "johnny_depp@gmail.com",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},

]
}

POJO:

public class ContactPojo {

String name,email,gender,mobileno;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public String getMobileno() {
return mobileno;
}

public void setMobileno(String mobileno) {
this.mobileno = mobileno;
}

}

代码:

ObjectMapper mapper=new ObjectMapper();
userData=mapper.readValue(jsonResponse,ContactPojo.class);

最佳答案

正如我所看到的,您的 json 不是数组,而是包含一个包含数组的对象的对象,因此您需要创建一个临时数据持有者类,让 Jackson 解析它。

private static class ContactJsonDataHolder {
@JsonProperty("contacts")
public List<ContactPojo> mContactList;
}

public List<ContactPojo> getContactsFromJson(String json) throws JSONException, IOException {

ContactJsonDataHolder dataHolder = new ObjectMapper()
.readValue(json, ContactJsonDataHolder.class);

// ContactPojo contact = dataHolder.mContactList.get(0);
// String name = contact.getName();
// String phoneNro = contact.getPhone().getMobileNro();
return dataHolder.mContactList;
}

还有对你的类(class)的小调整:

@JsonIgnoreProperties(ignoreUnknown=true)
public class ContactPojo {

String name, email, gender;
Phone phone;

@JsonIgnoreProperties(ignoreUnknown=true)
public static class Phone {

String mobile;

public String getMobileNro() {
return mobile;
}
}

// ...

public Phone getPhone() {
return phone;
}

@JsonIgnoreProperties(ignoreUnknown=true) 注释 确保当您的类不包含 json 中的属性时,您不会收到异常,例如 json 中的 address可以在 Phone 对象中给出一个异常(exception),或者 home

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com