如何通过jackson JsonGenerator内联对象?
问题描述:
考虑例如:如何通过jackson JsonGenerator内联对象?
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.File;
import java.io.FileInputStream;
public class Exmaple {
public static void main (String[] args) throws Exception {
Object object = new Object() {
private String id = "someId";
};
final JsonGenerator generator = new JsonFactory().createGenerator(System.out);
generator.writeStartObject();
generator.writeFieldName("data");
generator.writeBinary(new FileInputStream(new File("D:\\!Temp\\elasticsearch\\pdf.pdf")), -1);
generator.writeEndObject();
generator.writeObject(object);
generator.close();
}
}
目标是JSON流期间object
添加所有领域。与该代码我:
{
"data": "JVBERi0xLjMKJ="
} {
"id": "someId",
}
如何告诉jackson
不要再写从对象{}
?
修订
的exprected结果(如data
+从Java对象中的所有键):
{
"data": "JVBERi0xLjMKJ=",
"id": "someId",
}
答
只是不叫writeEndObject()
你叫writeBinary
后,它应该看起来像:
final JsonGenerator generator = new JsonFactory().createGenerator(System.out);
generator.writeStartObject();
generator.writeFieldName("data");
generator.writeBinary(new FileInputStream(new File("D:\\!Temp\\elasticsearch\\pdf.pdf")), -1);
generator.writeObject(object);
generator.writeEndObject();
generator.close();
你举了一个你不想要的数据的例子(两个对象,这使得完美的意义是临时的这是因为你编写代码来生成两个对象)。那么你需要什么样的数据呢?举一个例子。 – Gimby
已更新问题 – Cherry
您始终可以使用ObjectMapper来保证。 – Antoniossss