2016-10-13 3 views
0

Мой ниже код java возвращает следующий вывод.Проблемы с форматированием с сервисом обслуживания 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, но так как ваш код достиг точки, в которой вы можете использовать getProductBrand для «Product_Type», если было бы проще проверить, существует или нет, проверяя длину строки, возвращается, или погода возвращает значение null, или погода выдает исключение. –

+0

@UzumakiIchigo Im способен получить выход. единственное, что у меня есть, - это имя (Product_Type), как и при выходе, без двойных кавычек («»). Не могли бы вы сообщить мне, что мне здесь не хватает? Я хочу получить Product_Type как «Product_Type». – Emraan

ответ

2

Я не вижу ключи в attributeMap добавляющие любое значение, кроме создания представления строки, возвращаемой attributeMap.toString().

В этом случае, вы можете просто уйти и добавить двойные кавычки для ключей, например так:

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

String attribute = attributeMap.toString(); 
+0

У меня есть = знак на выходе, который необходимо изменить на:. – Emraan

0

Добавление кавычек soulds работы:

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; 

}

0

Вы можете использовать json lib, например net.sf.json.JSONObject

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(); 
} 
Смежные вопросы