场景:
我正在使用以下代码解码JSON字符串以使用它生成对象。
{"av":{"tid":"1000","sslist":[{"ss":{"ssId":"1","ssName":"Test ss "name one"}},{"ss":{"ssId":"2","ssName":"Test ss name two"}}],"hl":{"lc":0}}}
Run Code Online (Sandbox Code Playgroud)
现在,我有几百元sslist
,所有的失败,因为一个血淋淋"
的ssName
第一ss
要素。
但是,当String在createJsonParser()方法的最开始处进行解析时,会引发此错误。
题 :
我只想忽略容易出错的节点,而继续处理其他数百个正确的节点。还有其他方法吗?
代码:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JsonNode;
public class JsonReader {
private void readJsonMethodThree(String jsonString) throws JsonParseException, IOException{
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getJsonFactory();
JsonParser jsonParser = factory.createJsonParser(jsonString);
JsonNode jsonNode = mapper.readTree(jsonParser);
}
}
Run Code Online (Sandbox Code Playgroud)
例外情况:
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unexpected character ('n' (code 110)): was expecting comma to separate OBJECT entries
at [Source: java.io.StringReader@12cc95d; line: 1, column: 69]
Run Code Online (Sandbox Code Playgroud)
小智 4
yourjsonstring = yourjsonstring.replaceAll("\"name", "name");
Run Code Online (Sandbox Code Playgroud)
或者使用更通用的模式,这只是示例。