2017-09-14 10 views
0

私は残りAPIからの応答として取得していた下記のように私は、JSONファイルを持っている:残りAPIの解析のJSONレスポンスと一定のjsonObjectsを削除 - JAVA

{ 
    "label": " MARA LEYZIN", 
    "ClassCode": "PROFESSIONAL", 
    "actvFlg": "A", 
    "name": "MARA LEYZIN", 
    "Typ": { 
    "label": "C_TYP_LU", 
    "TypCode": "PROFESSIONAL " 
    }, 
    "Address": { 
    "link": [], 
    "firstRecord": 1, 
    "pageSize": 10, 
    "searchToken": "multi", 
    "item": [ 
     { 
     "label": "Address", 
     "addrTypFk": { 
      "label": "C_ADDRESS_TYPE_LU", 
      "addrTypCd": "INDUSTRY", 
      "addrTypDesc": "Industry" 
     } 
} 
] 
} 

私はJavaでとにこれを解析しようとしています不要なjsonオブジェクトを削除します。私は次の文字列を空白に置き換えることにしたいように:

String jsonStr = new String(Files.readAllBytes(Paths.get(inputFile))); 
System.out.println(jsonStr); 
jsonStr.replaceAll("link", ""); 

をしかし、それは空白が必要な文字列を交換していません。

"link": [], 
    "firstRecord": 1, 
    "pageSize": 10, 
    "searchToken": "multi", 
    "item": 

は、私は次のようなアプローチをしようとしていますこれを達成するために。これで私を助けてください。

+0

JSONライブラリを使用してJSONオブジェクトに変換するわけではありません。あなたが現在行っていることは、不正なJSONで終わる文字列置換です(文字列は不変であり、置き換えていることに注意してください)。 JSONオブジェクトを削除するには、まずそれをJSONオブジェクトとして解析し、特定のオブジェクトを無効にするか、 '@ JsonIgnore'または同等のものを使用します。 –

+2

文字列は不変です。 replaceAllは取得していない新しいStringを生成します。それでも期待どおりには動作しません。単にリンクの代わりに ""を残すだけです。なぜあなたは、応答の内容を変更するのではなく、このフィールドの解析をスキップしないのですか? – mhenryk

答えて

0

文字列オブジェクトは、とても基本的に、あなたが何か
System.out.println(jsonStr.replaceAll("link", ""));を交換したい場合は、この

jsonStr=jsonStr.replaceAll("link", ""); 

System.out.println(jsonStr);これを行うがあれば、これは置き換え文字列を出力しますが、それは元の文字列には影響しません、不変です置き換えられた文字列を出力します

0

まずは: JSONは検証されていません。あなたは終わりに中かっこを忘れています。

{ 
"label": " MARA LEYZIN", 
"ClassCode": "PROFESSIONAL", 
"actvFlg": "A", 
"name": "MARA LEYZIN", 
"Typ": { 
    "label": "C_TYP_LU", 
    "TypCode": "PROFESSIONAL " 
}, 
"Address": { 
    "link": [], 
    "firstRecord": 1, 
    "pageSize": 10, 
    "searchToken": "multi", 
    "item": [{ 
     "label": "Address", 
     "addrTypFk": { 
      "label": "C_ADDRESS_TYPE_LU", 
      "addrTypCd": "INDUSTRY", 
      "addrTypDesc": "Industry" 
     } 
    }] 
} 

}すべての

第二に、あなただけのこれにあなたのコマンドの順序を変更する必要があります。

jsonStr.replaceAll("link", ""); 
System.out.println(jsonStr); 

重要加え: そして、私はあなたがorg.jsonライブラリまたはさえを使用することをお勧めしますより良いJACKSON JSONファイルを解析する。

Here's tutorialジャクソンの使い方は私の最も暖かい提案です。 多くの時間を節約し、好きなことをすることができます。

関連する問題