我有一个 JSON 字符串,我想在使用杰克逊库构造 JsonNode 时更改该值。例如:-
input: {"name":"xyz","price":"90.00"}
output:{"name":"xyz-3","price":90.90}
我创建了自己的 JsonFactory 并传递了自己的解析器。但我只能更改键,而不能更改与键关联的值。
法典:
private static ObjectMapper create() {
ObjectMapper objectMapper = new ObjectMapper(new JsonFactory() {
@Override
protected JsonParser _createParser(byte[] data, int offset, int len, IOContext ctxt) throws IOException {
return new MyParser(super._createParser(data, offset, len, ctxt));
}
@Override
protected JsonParser _createParser(InputStream in, IOContext ctxt) throws IOException {
return new MyParser(super._createParser(in, ctxt));
}
@Override
protected JsonParser _createParser(Reader r, IOContext ctxt) throws IOException {
return new MyParser(super._createParser(r, ctxt));
}
@Override
protected JsonParser _createParser(char[] data, int offset, int len, IOContext ctxt, boolean recyclable)
throws IOException {
return new MyParser(super._createParser(data, offset, len, ctxt, recyclable));
}
});
private static final class MyParser extends JsonParserDelegate {
private MyParser(JsonParser d) {
super(d);
}
@Override
public String getCurrentName() throws IOException, JsonParseException {
....
}
@Override
public String getText() throws IOException, JsonParseException {
...
}
@Override
public Object getCurrentValue() {
...
}
@Override
public String getValueAsString() throws IOException {
...
}
在这种情况下,当调用 readTree 方法或未调用方法时,我无法在创建 JsonNode 本身时更改值。此外,json 字符串也可以不同。基本上,我想从字符串构造一个 JsonNode。因此,在这里绑定到特定的模式/bean 不是一个好的选择。如何解决这个问题?蒂亚getCurrentValuegetValueAsString
jeck猫
慕田峪9158850
相关分类