如何将{key1 = value1,key2 = value2}的字符串转换为json字符串或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中有任何utils吗?

ps:字符串不是println结果,它来自日志:在此处输入图像描述

您可以使用gson。

这是示例测试代码,将您的字符串转换为基于 gson的JsonObject,并验证转换后的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的信息

您可以做到这一点,而无需以下任何效果:

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"}

最新更新