将「=10=」反序列化成pojo
deserialize Json into POJO
我正在尝试将以下 JSON 结构(较大的 JSON 对象的一部分)转换为 POJO,但在下面复制了异常(使用 Java/Jackson)。
JSON
"outputKeys":
{"ABC":"gGyIioUr4Jfr5QiCm6Z==",
"DEF":"RxHfNyD2JyPOpG5tv3Jaj5g=="}
Java class
private class OutputKeys {
private String key;
private String value;
public OutputKeys(String key, String value) {
this.key = key;
this.value = value;
}
}
&
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(jsonString, Test.class);
异常:
no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?
测试 class 将 OutputKeys 作为属性。
欢迎大家提出意见。我也尝试过使用 OutputKeys 列表。
更新:
我尝试了以下但没有成功:
class OutputKeys {
public Map<String, String> keys;
///with constructor/setter/getters
}
&
class OutputKeys {
public List<OutputKey> keys;
///with constructor/setter/getters
public class OutputKey {
Map<String, String> outputs = new HashMap<>();
// tried this too:
// String key
//String value
}
您只需要下面提到的单个class,包含
- 所有键(ABC 和 DEF)
- getters/setters
toString(),您将使用它与 JSON.
交互
public class 输出键
{
私人字符串 ABC;
private String DEF;
public String getABC ()
{
return ABC;
}
public void setABC (String ABC)
{
this.ABC = ABC;
}
public String getDEF ()
{
return DEF;
}
public void setDEF (String DEF)
{
this.DEF = DEF;
}
@Override
public String toString()
{
return "ClassPojo [ABC = "+ABC+", DEF = "+DEF+"]";
}
}
如果您需要更多详细信息,请告诉我。
由于键是动态的,我最终使用 JsonNode 上的迭代器反序列化数据:
jsonNode.get("outputKeys").iterator()
& 然后通过迭代器获取相关的动态密钥信息。
我需要一个类似的 NodeJS 工具。这样我就可以对已序列化的更大模型的部分编写测试 (JSON)。
所以,如果我只需要 "ABC":"gGyIioUr4Jfr5QiCm6Z==" 或 "XYZ":{"Hello": "My String", "Content": [1 ,2,3]},目前我唯一想测试的 属性 是:
var sutXYX = { Hello: "My String", Content: [ 1, 2, 2]};
我把这个工具写成一个实用工具https://github.com/whindes/PojoScriptifyFromJSON
我正在尝试将以下 JSON 结构(较大的 JSON 对象的一部分)转换为 POJO,但在下面复制了异常(使用 Java/Jackson)。
JSON
"outputKeys":
{"ABC":"gGyIioUr4Jfr5QiCm6Z==",
"DEF":"RxHfNyD2JyPOpG5tv3Jaj5g=="}
Java class
private class OutputKeys {
private String key;
private String value;
public OutputKeys(String key, String value) {
this.key = key;
this.value = value;
}
}
&
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(jsonString, Test.class);
异常:
no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?
测试 class 将 OutputKeys 作为属性。
欢迎大家提出意见。我也尝试过使用 OutputKeys 列表。
更新:
我尝试了以下但没有成功:
class OutputKeys {
public Map<String, String> keys;
///with constructor/setter/getters
}
&
class OutputKeys {
public List<OutputKey> keys;
///with constructor/setter/getters
public class OutputKey {
Map<String, String> outputs = new HashMap<>();
// tried this too:
// String key
//String value
}
您只需要下面提到的单个class,包含
- 所有键(ABC 和 DEF)
- getters/setters
toString(),您将使用它与 JSON.
交互public class 输出键 { 私人字符串 ABC;
private String DEF; public String getABC () { return ABC; } public void setABC (String ABC) { this.ABC = ABC; } public String getDEF () { return DEF; } public void setDEF (String DEF) { this.DEF = DEF; } @Override public String toString() { return "ClassPojo [ABC = "+ABC+", DEF = "+DEF+"]"; }
}
如果您需要更多详细信息,请告诉我。
由于键是动态的,我最终使用 JsonNode 上的迭代器反序列化数据:
jsonNode.get("outputKeys").iterator()
& 然后通过迭代器获取相关的动态密钥信息。
我需要一个类似的 NodeJS 工具。这样我就可以对已序列化的更大模型的部分编写测试 (JSON)。
所以,如果我只需要 "ABC":"gGyIioUr4Jfr5QiCm6Z==" 或 "XYZ":{"Hello": "My String", "Content": [1 ,2,3]},目前我唯一想测试的 属性 是:
var sutXYX = { Hello: "My String", Content: [ 1, 2, 2]};
我把这个工具写成一个实用工具https://github.com/whindes/PojoScriptifyFromJSON