2016-03-22 18 views
0

2番目のJSONオブジェクトの値を1番目に上書きする必要がある状況があります。2番目のオブジェクトJSONを1番目のJSONオブジェクトでオーバーライドする方法

元JSON: -

{ 
    "products": { 
     "productsApp15": { 
      "status": "active", 
      "attribute_set": "Apparel", 
      "name": "productsApp16", 
      "product_type": "product", 
      "code": "productsApp16" 
     } 
    } 
} 

私の第一オブジェクト: -

{ 
    "productsApp15": { 
     "attribute_set": "Apparel", 
     "status": "active", 
     "name": "productsApp16", 
     "product_type": "product", 
     "code": "productsApp16" 
    } 
} 

私の第二のオブジェクト: -

{ 
    "attribute_set": "Apparel", 
    "status": "active", 
    "name": "productsApp16", 
    "product_type": "product", 
    "code": "try" 
} 

キーの値を表示する場合 - >codeされますここで更新。私は私のペイロードにそれを渡すことができるように

私の本当のまたは第一JSONオブジェクトでこの変更をしたいマイコード: -

FileReader reader = new FileReader(filePath); 

    JSONParser jsonParser = new JSONParser(); 
    JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); 

    JSONObject jsonObject1 = (JSONObject) jsonObject.get("products"); 
    JSONObject jsonObject2 = (JSONObject)jsonObject1.get("productsApp15"); 
    String firstName = (String) jsonObject2.get("code").toString(); 

    System.out.println("The first name is: " + firstName); 

    jsonObject2.remove("code"); 
    jsonObject2.put("code", "try"); 

    JSONObject jsonObject3 = (JSONObject)jsonObject1.get("productsApp15"); 
    String firstName2 = (String) jsonObject2.get("code").toString(); 
    System.out.println("The first name is: " + jsonObject3); 

    JSONObject combined = new JSONObject(); 
    combined.put("Object1", jsonObject1); 
    combined.put("Object2", jsonObject3); 
    String firstName3 = (String) jsonObject2.get("code").toString(); 
    System.out.println("The first name is: " + combined); 

私の主な目的: - 私は私のJSONを含むファイルを読んでいる、として、私のオブジェクトがもう一つのオブジェクトの中に入っているのを見ることができます。

値を更新し、それをペイロードに渡したいとします。

しかし、更新された値で元のJSON構造を取得する方法はありますか?

可能ですか?

+0

これはいつも異なる 'コード'ですか? –

+0

いいえ、それは単に機能を達成しようとしたものです。私は思ったほどAPIのフレームワークを作成するのは簡単ではありません:( –

+0

pardon?私はあなたのJSONオブジェクトのコード属性が違うのでしょうか? –

答えて

1

JSONで必要な構造に対してJavaクラスを構築することで、これを実現できます。

JSONリーダーとパーサーでJSONをうまく処理することは危険です。

public class Products{ 
    private List<Product> productsList; 
} 

public class Product{ 
    private Map<String, ProProps> map = new HashMap<>(); 
    class ProProps{ 
     private String code; 
     private String name; 
     ... 
    } 
} 

これにより、オブジェクトと値をマップできます。

キーで必要な製品の価値を入手し、必要な小道具を交換します。

Java - Jsonの変換が行われますが、開発するときに発生する可能性がある拡張機能はたくさんあります。

thisの例を使用して、必要な操作を変換して実行できます。

+0

私の問題は、オブジェクト内にオブジェクトを持つJSON構造体です...単純なJSONが機能します私の状況はlilの複合語です –

+0

上記のJavaクラスは、あなたが質問に投稿したJsonをサポートしていませんか?はい、ネストされたオブジェクトの階層はこれに必要であり、構造は同じと言います – VinayVeluri

+0

JSONParserとJSONObject? –

関連する問題