7

シナリオ :

次のコードを使用してJSON文字列をデコードし、それを使用してオブジェクトを生成しています。

ここに画像の説明を入力

{"av":{"tid":"1000","sslist":[{"ss":{"ssId":"1","ssName":"Test ss "name one"}},{"ss":{"ssId":"2","ssName":"Test ss name two"}}],"hl":{"lc":0}}}

今、私は何百もの要素を持っていますが、最初の要素に血が混じってsslistいるため、すべてが失敗しています。"ssNamess

しかし、このエラーは、文字列が 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);

        }

}

例外 :

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]
4

2 に答える 2