2016-10-13 11 views
0

以下のjavaコードは、次の出力を返します。rest service json出力の書式設定の問題

public String getAttributeMaster_2() throws JsonProcessingException {  
    Cluster cluster = couchBaseConnectionManager.openBucketOfActivCluster(CouchbaseBucket.RangePlan); 
    Map<String,Object> attributeMap = new HashMap<String,Object>(); 
    attributeMap.put("Product_Brand", attributeMasterRepository.getProductBrand(cluster, CouchbaseBucket.RangePlan)); 
    attributeMap.put("Product_Type", attributeMasterRepository.getProductType(cluster, CouchbaseBucket.RangePlan)); 
    attributeMap.put("Product_Event", attributeMasterRepository.getProductEvent(cluster, CouchbaseBucket.RangePlan)); 
    String attribute = attributeMap.toString(); 

    return attribute; 

} 

出力:

{"Product_Type"=[{"active":true,"description":"ACCESSORIES","id":1}, {"active":true,"description":"ALL IN ONES","id":2}], "Product_Brand"=[{"active":false,"description":"101 DALMATIANS","id":1}], "Product_Event"=[{"description":"BABY EVENT","id":2}, {"description":"ACTIVE EVENT","id":1}]} 

予想される出力:

{"Product_Type":[{"active":true,"description":"ACCESSORIES","id":1}, {"active":true,"description":"ALL IN ONES","id":2}], "Product_Brand":[{"active":false,"description":"101 DALMATIANS","id":1}], "Product_Event":[{"description":"BABY EVENT","id":2}, {"description":"ACTIVE EVENT","id":1}]} 

問題:(コロン): 私は=置き換えたいが持つ記号(等しい)を。

例:Product_Typeは "Product_Type"です。 Product_BrandとProduct_Eventも同じです。

誰かがこれを達成するのを手助けできるかどうか教えてください。

私はJavaコーディングが初めてです。あなたの応答を感謝します。

おかげで、

+0

私はjsonをパースするためにどのライブラリを使用しているのかわからないが、コードが "Product_Type"にgetProductBrandを使用できる点に達しているので、stringの長さをチェックすることで存在するかどうかを簡単に確認できます戻り値、または天候がnullを返すか天候が異常をスローします。 –

+0

@UzumakiIchigo Imは出力を得ることができます。私が発行している唯一のものは、二重引用符( "")なしで出力されるように、名前(Product_Type)です。私はここに何が欠けているのか教えてください。私はProduct_Typeを "Product_Type"として取得したいと思います。 – Emraan

答えて

2

は私が離れて()をattributeMap.toStringによって返された文字列表現を生成するから任意の値を追加するのattributeMapのキーが表示されません。この場合

、あなたは簡単に逃げることができるので、同様に、キーの二重引用符を追加します。

+0

私は出力に=記号をつけましたが、これは以下のように変更する必要があります。 – Emraan

0

は引用符soulds仕事を追加しますnet.sf.json.JSONObjectのようなjsonのlib

import net.sf.json.JSONObject; 
public String getAttributeMaster_2(){ 
    Cluster cluster = couchBaseConnectionManager.openBucketOfActivCluster(CouchbaseBucket.RangePlan); 
    JSONObject jsonObject = new JSONObject(); 
    jsonObject.put("Product_Brand", ""); 
    jsonObject.put("Product_Brand", attributeMasterRepository.getProductBrand(cluster, CouchbaseBucket.RangePlan)); 
    jsonObject.put("Product_Type", attributeMasterRepository.getProductType(cluster, CouchbaseBucket.RangePlan)); 
    jsonObject.put("Product_Event", attributeMasterRepository.getProductEvent(cluster, CouchbaseBucket.RangePlan)); 
    String attribute = jsonObject.toString(); 
} 
0

あなたが使用すること

public String getAttributeMaster_2() throws JsonProcessingException {  
    Cluster cluster = couchBaseConnectionManager.openBucketOfActivCluster(CouchbaseBucket.RangePlan); 
    Map<String,Object> attributeMap = new HashMap<String,Object>(); 
    attributeMap.put("\Product_Brand\"", attributeMasterRepository.getProductBrand(cluster, CouchbaseBucket.RangePlan)); 
    attributeMap.put("\"Product_Type\"", attributeMasterRepository.getProductType(cluster, CouchbaseBucket.RangePlan)); 
    attributeMap.put("\"Product_Event\"", attributeMasterRepository.getProductEvent(cluster, CouchbaseBucket.RangePlan)); 
String attribute = attributeMap.toString(); 

return attribute; 

}:

Map<String,Object> attributeMap = new HashMap<String,Object>(); 
attributeMap.put("\"Product_Brand\"", ...); 
attributeMap.put("\"Product_Type\"", ...); 
attributeMap.put("\"Product_Event\"", ...); 

String attribute = attributeMap.toString();