这是一个JSon格式转换传输的问题

J2EE 码拜 10年前 (2015-04-22) 1173次浏览 0个评论
 

这是我在网上看到的一个例子代码,用途是处理特殊字符,但是,我用的时候发现第8行会出错,第三个双引号会引住后面的语句
第10行也会出一个叫Invalid character constant的错,不知道例子里面是怎么实现的
这是一个JSon格式转换传输的问题

这是一个JSon格式转换传输的问题
sb.append(“””);双引号要转义,可以用处理JSON的jar,比如GSON这些
这是一个JSon格式转换传输的问题
引用 1 楼 shixitong 的回复:

sb.append(“””);双引号要转义,可以用处理JSON的jar,比如GSON这些

我知道应该要转义,可是例子里面就没有,我就想问问他怎么实现的

这是一个JSon格式转换传输的问题
20分
引用 2 楼 snakec0047 的回复:
Quote: 引用 1 楼 shixitong 的回复:

sb.append(“””);双引号要转义,可以用处理JSON的jar,比如GSON这些

我知道应该要转义,可是例子里面就没有,我就想问问他怎么实现的

例子里没有,不代表这个例子就编译成功并运行了,没有必要纠结于这些东西,了解他的思路就可以了

这是一个JSon格式转换传输的问题
引用 3 楼 shixitong 的回复:
Quote: 引用 2 楼 snakec0047 的回复:
Quote: 引用 1 楼 shixitong 的回复:

sb.append(“””);双引号要转义,可以用处理JSON的jar,比如GSON这些

我知道应该要转义,可是例子里面就没有,我就想问问他怎么实现的

例子里没有,不代表这个例子就编译成功并运行了,没有必要纠结于这些东西,了解他的思路就可以了

第10行的错误该如何解决

这是一个JSon格式转换传输的问题
20分
package test;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

import com.google.common.io.Resources;

public class Test {
	public static void main(String[] args) throws IOException {
		String str = FileUtils.readFileToString(new File(Resources.getResource("a.txt").getFile()));
		System.out.println(string2Json(str));
	}

	static String string2Json(String s) {
		StringBuilder sb = new StringBuilder(s.length() + 20);
		sb.append(""""");
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			switch (c) {
			case """"":
				sb.append("\"");
				break;
			case ""\"":
				sb.append("\\");
				break;
			case ""/"":
				sb.append("\/");
				break;
			case ""\b"":
				sb.append("\b");
				break;
			case ""\f"":
				sb.append("\f");
				break;
			case ""\n"":
				sb.append("\n");
				break;
			case ""\r"":
				sb.append("\r");
				break;
			case ""\t"":
				sb.append("\t");
				break;
			default:
				sb.append(c);
			}
		}
		sb.append(""""");
		return sb.toString();
	}
}

a.txt内容
{“name”:”Michael”,”address”:
    {“city”:”Beijing”,”street”:” Chaoyang Road “,”postcode”:100025}
}
运行之后的输出:
“{“name”:”Michael”,”address”:\r\n    {“city”:”Beijing”,”street”:” Chaoyang Road “,”postcode”:100025}\r\n}”

你找的代码是错误的。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这是一个JSon格式转换传输的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!