当前位置: 首页 > 知识库问答 >
问题:

如何使用GSON+java在json字符串中插入转义符,即“\n”[duplicate]

弘焕
2023-03-14

我正在使用SpringBoot和Java使用第三方API,他们的要求是以以下格式发送JSON。

"{\n" + 
            "  \"scheduleAt\": \"2020-01-16T09:45:29.361Z\",\n" + 
            "  \"serviceType\": \"TRUCK\",\n" + 
            "  \"stops\": [\n" + 
            "    {\n" + 
            "      \"location\": {\n" + 
            "        \"lat\": \"109.063753\",\n" + 
            "        \"lng\": \"312.998866\"\n" + 
            "      },\n" + 
            "      \"addresses\": {\n" + 
            "        \"en_IN\": {\n" + 
            "          \"displayString\": \"Please bring the BAG\",\n" + 
            "          \"country\": \"IN\"\n" + 
            "        }\n" + 
            "      }\n" + 
            "    }\n" + 
            "  ]\n" + 
            " }";
{
  "scheduleAt": "2020-01-16T09:45:29.361Z",
  "serviceType": "TRUCK",
  "stops": [
    {
      "location": {
        "lat": "109.063753",
        "lng": "312.998866"
      },
      "addresses": {
        "en_IN": {
          "displayString": "Please bring the BAG",
          "country": "TH"
        }
      }
    }
  ]
 }
{\n \"scheduleAt\": \"2018-12-31T14:30:00.00Z\",\n \"serviceType\": \"MOTORCYCLE\",\n \"requesterContact\": { \"name\": \"Peter Pan\", \"phone\": \"232\" },\n \"stops\": [\n {\n \"location\": { \"lat\": \"-6.255431000000001\", \"lng\": \"106.60114290000001\" },\n \"addresses\": {\n \"en_ID\": {\n \"displayString\":\n \"Jl. Perum Dasana Indah No.SD 3/ 17-18, RT.3/RW.1, Bojong Nangka, Klp. Dua, Tangerang, Banten 15810, Indonesia\",\n \"country\": \"ID\"\n }\n }\n },\n {\n \"location\": { \"lat\": \"-6.404722800000001\", \"lng\": \"106.81902130000003\" },\n \"addresses\": {\n \"en_ID\": {\n \"displayString\": \"Jl. Kartini, Ruko No. 1E, Depok, Pancoran MAS, Kota Depok, Jawa Barat 16431, Indonesia\",\n \"country\": \"ID\"\n }\n }\n }\n ],\n \"deliveries\": [\n {\n \"toStop\": 1,\n \"toContact\": {\n \"name\": \"mm\",\n \"phone\": \"9999999\"\n }\n }\n ]\n}\n'

但实际上我通过GSON得到的是以下内容:(当前)

{
  "scheduleAt": "2020-01-16T09:45:29.361Z",
  "serviceType": "TRUCK",
  "stops": [
    {
      "location": {
        "lat": "109.063753",
        "lng": "312.998866"
      },
      "addresses": {
        "en_IN": {
          "displayString": "Please bring the BAG",
          "country": "TH"
        }
      }
    }
  ]
 }

共有1个答案

井洲
2023-03-14

我能够直接处理引用的文本,而不需要任何附加设置或更改:

import com.google.gson.Gson;

public class GSONTest {

    public String value;

    public static void main(String[] args) {
        Gson g = new Gson();
        GSONTest gt = new GSONTest();
        gt.value = "Test using \"quoted\" strings.";
        System.out.println("String: " + gt.value);
        System.out.println("JSON: " + g.toJson(gt));
    }
}

输出:

String: Test using "quoted" strings.
JSON: {"value":"Test using \"quoted\" strings."}
 类似资料:
  • 问题内容: 手动创建数据时,应如何转义字符串字段?我应该用什么样的中的或者我应该使用 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下,找到一种使用你的语言的JSON库,你可以向该库提供一些适当的数据结构,并使它担心如何转义。它会让你保持头脑清醒。如果出于某种原因你没有使用你的语言的库,或者你不想使用一个库(我不建议这样做

  • 问题内容: 手动创建JSON数据时,应如何转义字符串字段?我应该用什么样的Apache Commons Lang中的,或者我应该使用? 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下, 找到一种使用您的语言的JSON库 ,您可以向该 库 提供一些适当的数据结构, 并使它担心如何转义 。它会让您保持头脑清醒。如果出于某种原

  • 我正在尝试从json转换为Java对象。我收到一个json字符串,其中包括一个书籍列表: 我创建了一个名为Books的对象: 另外,我正在使用doGet方法从RESTful webservice中以以下方式检索这些数据: 干杯

  • 本文向大家介绍如何在Java中使用Gson向JSON字符串添加/插入其他属性?,包括了如何在Java中使用Gson向JSON字符串添加/插入其他属性?的使用技巧和注意事项,需要的朋友参考一下 com.google.gson.JSonElement 类表示的元素的Json。我们可以使用Gson 类的toJsonTree() 方法将对象的表示形式序列化为JsonElements的树。我们可以添加/通过

  • 问题内容: 我有以下要发送到NodeJS服务器的JSON字符串: 当字符串包含字符和 在NodeJS服务器上,我正在像这样解析JSON: 有什么想法我可以设法毫无问题地发送所有字符吗? 问题答案: 我会使用一个库来为您创建JSON 。一些选项是: GSON 克罗福德的解放 这将使转义变得更加容易。一个示例(使用)为:

  • 问题内容: 我正在读取Java中的源文件,但是当我打印它(sysout)时,转义的字符不再转义。如何在Java中转义像和这样的字符? 问题答案: 您应该使用Apache Commons Text中的类(您也可以在Apache Commons Lang3中找到该类,但已弃用该类)。您会发现Apache Commons中还有许多其他产品可能对您在Java开发中遇到的其他问题有用,因此您不必重新发明轮子