gpt4 book ai didi

java - Jackson 库 JSON 映射器到字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:03 24 4
gpt4 key购买 nike

我有一个类(AB 是我的对象)

public A   {
private List<B> b;
private int c;
}

我有一个字符串变量 temp。所以我会在这个变量中保存我的对象的 JSON 字符串。怎么办?

我试过这两种方法,但没有结果。

public void save() {
ObjectMapper mapper = new ObjectMapper();
String temp = mapper.writeValueAsString(a);
}
public void read(String temp) {
ObjectMapper mapper = new ObjectMapper();
A a = mapper.readValue(temp, A.class);
}

我该如何解决?

最佳答案

代码应该将类型 A 的实例传递给 writeValueAsString 方法,而不是实际的类。

ObjectMapper 将能够通过反射确定实例的类型,但是如果您不传递实例,它就无法确定要放置在生成的 JSON 中的字段值。

还要确保捕获或抛出适当的异常。

public void save() {

try {
A a = new A();
ObjectMapper mapper = new ObjectMapper();
String temp = mapper.writeValueAsString(a);

} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

您还应该拥有类 A 和类 B 上的字段的访问器。 注意 我在前面的句子中包含了 B,因为 Jackson 必须能够映射我们提供给它的实例上的所有字段。

public A   {
private List<B> b;
private int c;

private B getB(){ return b;}
private void setB(B b){this.b = b;}
private int getC(){return c;}
private void setC(int c){this.c = c;}
}

这是我测试过的一个完整的工作示例。

import java.io.IOException;
import java.util.List;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class A {

private List<B> b;
private int c;

public List<B> getB() {
return b;
}

public void setB(List<B> b) {
this.b = b;
}

public int getC() {
return c;
}

public void setC(int c) {
this.c = c;
}

public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
A a = new A();
ObjectMapper mapper = new ObjectMapper();
String temp = mapper.writeValueAsString(a);
System.out.println(temp);
}
}

class B{


}

如果这个简单示例不起作用,jackson-mapper-asl.jar 文件很可能不在构建路径中。从 here 下载文件并将它放在本地计算机上的某个位置。

接下来通过 Eclipse,右键单击您的项目并选择属性。

然后选择 Build Path > Libraries > Add External Jars。找到 jar ,然后点击确定。

关于java - Jackson 库 JSON 映射器到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318313/

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