jsonobject显示转义字符

xqnpmsa8  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(459)

我创建了一个手动json对象,并对其中一个字段使用转义字符。每当我打印jsonobject时,我都会看到转义字符串,有没有办法删除它们?我只是担心当我通过服务器发送json对象时,客户端会得到带有转义字符串的json对象。

String car_parameters = "{\"property_name\":\"car_id\",\"traceKey\":\"account_id,accountName,car_id\"}";
        System.out.println("car params"+car_parameters);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("message", car_parameters);
        System.out.println("one"+jsonObject);
        System.out.println("two"+payload);

这些分别是输出,我试着将json对象转换成字符串,但没有什么区别,我希望看到json对象的字段没有转义符,就像我只打印字符串一样。

car params{"property_name":"car_id","traceKey":"account_id,accountName,car_id"}
one{"message":"{\"property_name\":\"car_id\",\"traceKey\":\"account_id,accountName,car_id\"}"}
two{"message":"{\"property_name\":\"car_id\",\"traceKey\":\"account_id,accountName,car_id\"}"}
lrl1mhuk

lrl1mhuk1#

转义字符是由java语法引起的。java不允许

String car_parameters = "{"property_name":"car_id","traceKey":"account_id,accountName,car_id"}"

自动转换。
可以将其转换为对象,如下所示

System.out.println("toString"+JSONObject.parse(car_parameters));

输出:

Object:{"traceKey":"account_id,accountName,car_id","property_name":"car_id"}

另外:如果发送给客户端,它也会是{“message”:“{property\uname”:“car\uid”,“tracekey”:“account\uid,accountname,car\uid”}
\它将成为字符串的一部分,因此前端需要处理它,但是java中的传输不会影响使用。

wxclj1h5

wxclj1h52#

你能做到的。请考虑您需要什么工件。(我最喜欢的是objectmapper。)
如果您需要从字符串生成,它很简单。
也许有很多苛刻的方式,但我认为现在没有必要了。
请记住,第一个示例需要新的工件,如下所示 pom.xml ```

JSONParser jsonParser = new JSONParser();
Object myObject = jsonParser.parse(car_parameters);
System.out.println("One" + myObject);

// Put it separate.
JSONObject jsonObject = new JSONObject();
jsonObject.put("property_name", "car_id");
jsonObject.put("traceKey", "account_id,accountName,car_id");
System.out.println("Two"+jsonObject);

jsonObject.remove("property_name");
jsonObject.remove("traceKey");

// Put it a map first.
HashMap<String, String> myMap = new HashMap<>();
myMap.put("property_name", "car_id");
myMap.put("traceKey", "account_id,accountName,car_id");
jsonObject.put("message", myMap);
System.out.println("Three"+jsonObject);

}

这是输出,

car params{"property_name":"car_id","traceKey":"account_id,accountName,car_id"}
One{"traceKey":"account_id,accountName,car_id","property_name":"car_id"}
Two{"traceKey":"account_id,accountName,car_id","property_name":"car_id"}
Three{"message":"{traceKey=account_id,accountName,car_id, property_name=car_id}"}

相关问题