String.format() 一个带有单个 %s 的 json 数组字符串的方法

问题描述 投票:0回答:0

我正在尝试查看是否有一种方法可以使用单个 %s 格式化 json 数组字符串,而无需反斜杠。我正在处理的 API 将这个格式化的字符串附加为主体参数并将其发送到服务器。当服务器得到它时,字符串中有反斜杠。我需要这个字符串没有转义字符。

常数看起来像这样:

final String REQUEST_PARAMS = "{\"params\":{\"details\":{\"param1\":\"%s\",\"param2\":\"%s\",\"extraParams\":\"%s\"}}}"; 

这是将 json 数组转换为字符串的代码片段:

...
ObjectMapper mapper = new ObjectMapper(); 
String extraParams = mapper.writeValueAsString(params.getExtraParams()); // this looks like: [{"hostValue": "id1", "portNumber": "name1"}, {...}] for example.
    
String formattedParams = String.format(REQUEST_PARAMS, "param1", "param2", extraParams); // {"params":{"details":{"param1":"param1","param2":"param2","extraParams":"[{"hostValue": "id1", "portNumber": "name1"}]"}}}
...

但是,当它被发送到后端 API 时,它看起来像:

{"params":{"details":{"param1":"param1","param2":"param2","extraParams":[{\"hostValue\": \"id1\", \"portNumber\": \"name1\"}]}}}.

我想确保没有转义字符被发送到服务器,有没有办法做到这一点?任何见解将不胜感激!

java arrays json format string.format
© www.soinside.com 2019 - 2024. All rights reserved.