Google的Gson的坑

本文通过三个示例展示了如何使用Google的Gson库将Java对象转换为JSON字符串,并探讨了如何处理特殊字符如'&'的问题。通过禁用HTML转义功能,可以得到更符合预期的输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上代码先:

package com.sinoiov.testng;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class MyInterfacesTest {
	private final String USER_NAME = "zhang&wang";
	private final String USER_PHONE = "13012345678";

	@Test
	public void f1() {
		User user = new User();
		user.setName(USER_NAME);
		user.setPhone(USER_PHONE);
		Gson gson = new Gson();
		String s = gson.toJson(user);
		System.out.println(s);
	}

	@Test
	public void f2() {
		User user = new User();
		user.setName(USER_NAME);
		user.setPhone(USER_PHONE);
		GsonBuilder gsonBuilder = new GsonBuilder();
		Gson gson = gsonBuilder.create();
		String s = gson.toJson(user);
		System.out.println(s);
	}

	@Test
	public void f3() {
		User user = new User();
		user.setName(USER_NAME);
		user.setPhone(USER_PHONE);
		GsonBuilder gsonBuilder = new GsonBuilder();
		gsonBuilder.disableHtmlEscaping();
		Gson gson = gsonBuilder.create();
		String s = gson.toJson(user);
		System.out.println(s);
	}

	@BeforeTest
	public void beforeTest() {
	}

	@AfterTest
	public void afterTest() {
	}

}

再看运行结果,你就知道这个\u0026的坑了,其实不是坑,是我们对人家不够了解。

{"name":"zhang\u0026wang","phone":"13012345678"}
{"name":"zhang\u0026wang","phone":"13012345678"}
{"name":"zhang&wang","phone":"13012345678"}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网速递520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值