json列反転義(反スラッシュ除去)

1484 ワード

Json列はシリアル化されてファイルに保存する、文字列を読み取るときは、そのままJSONを使うことはできない.parse()はJSONオブジェクトとして解析される.文字列なので、合法的なJSONオブジェクトフォーマットではありません.例えば次のJSON列はファイルに保存されていて、直接解析することはできません.
“{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}"

この列がコードに出ていれば問題ありません.反スラッシュはエスケープを表しますが、テキストファイルから直接読み出せばこのようなもので、JSONは直接使えません.parse()を解析するには,反直列化が必要であり,反スラッシュを除去する.一部のprogrammerは自分でツールクラスを書いてこのようなことをするのが好きですが、便利で速いツールクラスがこのことをすることができます.車輪を繰り返し発明する必要はありません.
Apacheのcommonをそのまま使えます.langキット(ツールクラス:org.apache.commons.lang.StringEscapeUtilsを使用).例は次のとおりです.
    public void test(){
        String str1 = "{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}";
        String tmp = StringEscapeUtils.unescapeJavaScript(str1);
        System.out.println("tmp:" + tmp);
    }

出力:
tmp:{"resourceId":"51ad70e41c5c11e88514000c290cdcfa","properties":{"process_id":"process4","name":"","documentation":"","processformtemplate":""}}