使用jackson库将领域模型转换为json对象时获取未知密钥。
这是我的领域模型实例。
public class RecordData extends RealmObject {
public RecordData() {
}
private FormData formData;
@Nullable
@JsonProperty("values")
private RealmList<Values> values;
@Nullable
@JsonProperty("value")
private String value;
}
将领域模型转换为json对象的代码。
JSONObject recordDataJsonObject = new JSONObject(new ObjectMapper().writeValueAsString(formData.getRecordData()));
解析json的输出:
{"loaded":true,"managed":false,"valid":true,"value":"fdfdf","values":[]}
领域版本:io.realm:realm-gradle-plugin:4.1.1
Rxjava版本:'io.reactivex.rxjava2:rxjava:2.1.6'
杰克逊版:com.fasterxml.jackson.core:jackson-databind:2.8.6
为什么我会得到加载,管理和有效的布尔值?
答案 0 :(得分:0)
从ObjectMapper写回复,你必须这样做:
public static String getJsonFromObject() {
ObjectMapper objectMapper = ObjectMapperHelper.getObjectMapperInstance();
String jsonString = null;
try {
jsonString = objectMapper.writeValueAsString(formData.getRecordData());
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return jsonString != null ? jsonString : "";
}
并在JsonObject中获取您的响应:
try {
JSONObject jsonObject = new JSONObject().getJSONObject(getJsonFromObject());
} catch (JSONException e) {
e.printStackTrace();
}
快乐的编码!!
答案 1 :(得分:0)
我已经使用Gson解析库解决了它。
arr[i] += arr[i+2];
它不会返回未知密钥。输出在这里。
JSONObject recordDataJsonObject = new JSONObject(new Gson().toJson(formData.getRecordData()));
希望如果你遇到同样的情况,你会找到这个解决方案。
答案 2 :(得分:0)
您可以使用@JsonIgnoreProperties({"loaded", "managed", "valid"})
public class RecordData extends RealmObject {
public RecordData() {
}
private FormData formData;
@Nullable
@JsonProperty("values")
private RealmList<Values> values;
@Nullable
@JsonProperty("value")
private String value;
}
注释:
@RealmClass public class RecordData implements RealmModel
另一种选择是使用{{1}}。