簡體   English   中英

如何將{key1 = value1,key2 = value2}之類的字符串轉換為json字符串或Jsonobject?

[英]how do I convert a String like {key1=value1, key2=value2} into a json String or Jsonobject?

像這樣:

{aliSerialNumber=111111, pubmsCode=null, orderNumber=111, orderId=null, queryNo=null, msgId=null, consNo=null, userId=null, instId=null, companyId=null, appId=null, extendMap=null, pageSource=null, aliStatus=null}

轉換成這樣:

{"aliSerialNumber":"111111" ...}

我可以使用Java中的任何工具嗎?

ps:字符串不是println結果,它來自日志: 在此處輸入圖像描述

您無需任何類似的工具就可以做到這一點:

String str = "{aliSerialNumber=111111, pubmsCode=null, orderNumber=111, orderId=null, queryNo=null, msgId=null, consNo=null, userId=null, instId=null, companyId=null, appId=null, extendMap=null, pageSource=null, aliStatus=null}";
str = str.replace("{", "");
str = str.replace("}", "");

String[] temp = str.split(",");
String json = "{";

for (String s : temp)
{
    String key = s.split("=")[0].trim();
    String val = s.split("=")[1].trim();

    json += "\"" + key + "\":";
    json += "\"" + val + "\", ";
}

json = json.substring(0, json.length() - 2);
json += "}";

System.out.println(json);

結果是這樣(有效的JSON):

{"aliSerialNumber":"111111", "pubmsCode":"null", "orderNumber":"111", "orderId":"null", "queryNo":"null", "msgId":"null", "consNo":"null", "userId":"null", "instId":"null", "companyId":"null", "appId":"null", "extendMap":"null", "pageSource":"null", "aliStatus":"null"}

您可以為此使用Gson

這是將您的字符串轉換為基於GsonJsonObject並驗證轉換后的json是否有效的示例測試代碼。 您可以使用以下相對代碼。

@Test
public void checkJson() {
    String json = "{aliSerialNumber=111111, pubmsCode=null, orderNumber=111, orderId=null, queryNo=null, msgId=null, consNo=null, userId=null, instId=null, companyId=null, appId=null, extendMap=null, pageSource=null, aliStatus=null}";
    JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
    assertNotNull(jsonObject);
    assertEquals(jsonObject.get("aliSerialNumber").getAsInt(),111111);
    System.out.print(jsonObject.get("aliSerialNumber"));
}

返回true。

在這里進一步了解gson

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM