去掉对象里面的换行符

使用了反射和递归

/**
	 * 去掉对象的换行符
	 * 
	 * @param object
	 * @throws IllegalArgumentException
	 * @throws IllegalAccessException
	 */
	public static void removeObjectRN(Object object) throws IllegalArgumentException, IllegalAccessException {
		Class personClass = object.getClass();
		Field[] fields = personClass.getDeclaredFields();
		for (int i = 0; i < fields.length; i++) {
			fields[i].setAccessible(true);
			if ("List".equals(fields[i].getType().getSimpleName())) {
				if ("java.util.List<java.lang.String>".equals(fields[i].getGenericType().toString())) {
					List<String> list = (List<String>) fields[i].get(object);
					if (list != null) {
						for (int k = 0; k < list.size(); k++) {
							String removeStringRN = removeStringRN(list.get(k));
							list.remove(k);
							list.add(k, removeStringRN);
						}
						fields[i].set(object, list);
					}
				} else {
					List<Object> list = (List<Object>) fields[i].get(object);
					if (list != null) {
						for (int k = 0; k < list.size(); k++) {
							removeObjectRN(list.get(k));
						}
					}
				}
			} else if ("String".equals(fields[i].getType().getSimpleName())) {
				String value = removeStringRN((String) fields[i].get(object));
				fields[i].set(object, value);
			}
		}
	}

	/**
	 * 去掉String里面的换行符
	 * 
	 * @param value
	 * @return
	 */
	public static String removeStringRN(String value) {
		String remove1 = "\n";
		String remove2 = "\r";
		return value.replace(remove1, "").replace(remove2, "");
	}
### JSON字符串中的转义符用法 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于数据传输和存储。为了确保JSON字符串能够正确表示特殊字符或控制字符,在JSON标准中定义了一组特定的转义序列。 #### 常见的JSON转义字符及其含义 以下是JSON中最常见的转义字符以及它们对应的解释: | 转义字符 | 含义 | |----------|-------------------------| | `\"` | 双引号 | | `\\` | 反斜杠 | | `\/` | 正斜杠 | | `\b` | 退格符 | | `\f` | 换页符 | | `\n` | 换行符 | | `\r` | 回车符 | | `\t` | 制表符 | | `\uXXXX` | Unicode 字符 (16进制编码) | 这些转义字符允许开发者在JSON字符串中安全地嵌入特殊字符而不破坏语法结构[^2]。 #### 示例代码展示 以下是一些关于如何使用JSON转义符的具体示例: ##### Java 中的 JSON 转义符处理 ```java // 创建一个包含双引号和其他转义字符的JSON字符串 String jsonString = "{\"name\": \"John\", \"message\": \"This is a \\\"test\\\" string with newline:\\n and tab:\\t.\"}"; System.out.println(jsonString); ``` 在这个例子中,`\\"` 和 `\\` 是用来分别转义双引号和反斜杠的[^1]。 ##### Python 中的 JSON 转义符处理 ```python import json data = { "name": "Alice", "message": "This is a \"test\" string with newline:\n and tab:\t." } json_string = json.dumps(data, ensure_ascii=False) print(json_string) # 将 JSON 字符串转换回 Python 对象 parsed_data = json.loads(json_string) print(parsed_data["message"]) ``` 这里展示了如何通过Python内置模块`json`来自动处理转义字符,并将其应用到实际对象中[^3]。 ##### C语言中的JSON解析与转义符去除 假设我们有一个带有转义符的JSON字符串: ```c #include <stdio.h> #include <string.h> void remove_escapes(char *str) { char buffer[256]; int j = 0; for(int i=0;i<strlen(str);i++) { if(str[i]=='\\' && str[i+1]=='"') { // 处理转义后的双引号 buffer[j++]='"'; i++; } else if(str[i]=='\\'&&str[i+1]=='\\'){ // 处理单个反斜杠 buffer[j++]='\\'; i++; }else{ buffer[j++]=str[i]; } } buffer[j]='\0'; strcpy(str,buffer); } int main(){ char input[]="{\"key\":\"value\",\"desc\":\"A line break here:\\nand another one.\"}"; printf("Before:%s\n",input); remove_escapes(input); printf("After :%s\n",input); } ``` 此程序演示了如何去掉C语言中JSON字符串里的某些常见转义符号。 ### 结论 无论是在Java、Python还是C语言环境下操作JSON时,都需要特别注意其中涉及的各种转义规则以保证最终结果符合预期需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值