2017-08-30 26 views
-3

JSON文字列の下からjklオブジェクトを抽出したいと思います。また、抽出後、バックスラッシュを削除して、中カッコでさらに抽出します。私はStackOverflowに関するいくつかの質問に従ったが、あまり役に立たなかった。JSONからデータを抽出してデータを変更する

{ 
"abc:def": { 
     "ghi": { 
     "jkl": "{\"mno:pqr\":{\"ty\":4,\"\\nsensing_service_name:\\\"Number\\\",\\nsensing_service_id: 20\\n}\\n  ]\\n}\"}}", 
     "st": { 
      "op": 5, 
      "org": "q9wr9qrq" 
     }, 
     "uvw": 1 
     }, 
     "xyz": false 
    } 
} 

jklオブジェクトを表示するために以下のコードを試しましたが、動作しません。この中に間違っているものを提案してください、これはあなたを助ける同じ

JSONObject json = (JSONObject) JSONSerializer.toJSON(data); 
JSONObject aa = json.getJSONObject("abc:def"); 
JSONObject bb = aa.getJSONObject("ghi"); 
JSONObject cc = bb.getJSONObject("jkl"); 
System.out.println(cc); 
+0

問題は、あなたがJSONObjectとして文字列を取得しようとしているです。 – shmosel

+0

あなたは何を見せたいですか? –

+0

ありがとうございます。 nsensing_service_nameの値を表示したい – Pravin

答えて

0

ホープ修正方法:

import org.apache.commons.lang3.StringUtils; 
import org.json.JSONObject; 

public class TestClass { 
    public static void main(String[] args) throws Exception { 
     String jsonString = "{\n" + 
       " \"abc:def\": {\n" + 
       "  \"ghi\": {\n" + 
       "   \"jkl\": \"{\\\"mno:pqr\\\":{\\\"ty\\\":4,\\\"\\\\nsensing_service_name:\\\\\\\"Number\\\\\\\",\\\\nsensing_service_id: 20\\\\n}\\\\n  ]\\\\n}\\\"}}\",\n" + 
       "   \"st\": {\n" + 
       "   \"op\": 5,\n" + 
       "   \"org\": \"q9wr9qrq\"\n" + 
       "   },\n" + 
       "   \"uvw\": 1\n" + 
       "  },\n" + 
       "  \"xyz\": false\n" + 
       " }\n" + 
       "} "; 

     JSONObject jsonObject = new JSONObject(jsonString); 
     jsonObject = (JSONObject) jsonObject.get("abc:def"); 
     jsonObject = (JSONObject) jsonObject.get("ghi"); 
     String result = jsonObject.getString("jkl"); 
     result = StringUtils.replace(result, "\\n", ""); 
     System.out.println(result.replaceAll("\\\\","")); 
    } 
} 
+0

ありがとうSudha。期待どおりに動作しています。私はそれが@shmoselによって指摘された間違いであったと思う。 – Pravin

関連する問題