JSON中的特殊字符

 使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。这个时候,就需要将JSON中的特殊字符过滤掉。

用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题

                  /**//// <summary>
    /// 过滤特殊字符
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    private static string String2Json(String s)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.Length; i++)
        {
            char c = s.ToCharArray()[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:
                    if ((c >= 0 && c <= 31)||c ==127)//在ASCⅡ码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符
                    {

                    }
                    else
                    {
                        sb.Append(c);
                    }
                    break;
            }
        }
        return sb.ToString();
    }
/// <summary>

         ///   替换部分字符串

         /// </summary>

         /// <param name="sPassed">需要替换的字符串</param>

         /// <returns></returns>

         private static string ReplaceString(string sContent)

         {

             if (sContent == null) { return sContent; }

             if (sContent.Contains("\\"))

             {

                 sContent = sContent.Replace("\\", "\\\\");

             }

             if (sContent.Contains("\‘"))

             {

                 sContent = sContent.Replace("\‘", "\\\‘");

             }

             if (sContent.Contains("\""))

             {

                 sContent = sContent.Replace("\"", "\\\"");

             }

             //去掉字符串的回车换行符

             sContent = Regex.Replace(sContent, @"[\n\r]", "");

             sContent = sContent.Trim();

             return sContent;

         }
时间: 2024-10-12 07:49:42

JSON中的特殊字符的相关文章

如何处理JSON中的特殊字符

JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取:而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思.静乐县隗承五金 XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON A

如何处理JSON中的特殊字符 介绍几种解决方案

http://www.nowamagic.net/librarys/veda/detail/216JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取:而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思. XML 也可以提供文本方面的类似益处,但用于

C#中 如何处理 JSON中的特殊字符

public static String StringToJson(String s) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++) { char c = s[i]; switch (c) { case '\"': sb.Append("\\\""); break; case '\\': sb.Append("\\\\"); brea

JSON数据的处理中的特殊字符

JSON现在是很常见的处理数据的方式了.但由于自己使用的是反射获取数据,必须自己处理特殊字符,但总是发现有一些看不见的字符在前台 var obj = jQuery.parseJSON(msg);会转换失败. 例如如下在Vs中可以看到只有两个字符 可实际上却有三个字符,使用notepad++打开 一直不明白这些字符是如何进入数据库的,但进入了,就必须处理,否则在前台就会转换失败,导致数据加载失败. 很长时间以为是由于用户复制了一些其他编码的文字,在中文中没有对应的编码,导致的错误.这次又出现了,于

Javascript转义字符串中的特殊字符处理

2014-08-08 Web应用系统中,客户端发送请求到服务器,请求中的字符串参数,在被序列化成json过程中有些特殊字符会被空格代, 导致传递到服务器端再解析的时候,原本的输入参数就会被改变. 目前遇到的特殊字符有加号(+)与连接号(&). 临时解决方案: 前端:定义一个函数,在函数中预先处理, 1 function EncodeURIFilter(str) { 2 if(str != null && str != "") { 3 str = str.repl

在java中将各种类型数据转化为json和从json中取数据

首先,导入以下jar包 下面是各种类型转化为json和从json中取出数据的程序 package jsontest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonMain { public

如何获取和判断json中的boolean 值

其实我是明确知道返回来的数据是 boolean 类型的, 只是在做判断的时候 发现直接使用 if([responseObject objectForKey:@"success"]) 判断没有任何意义,因为我判断的是这是不是为真,换句话说,就是是不是非空, 靠当然非空啦,大不了返回一个false 但那个也是有值得,so ,我尝试使用改变数据类型接收, 当我用NSString * 接收时, 发生这种错误 [__NSCFBoolean isEqualToString:]: unrecogni

JSON相关知识,转载:删除JSON中数组删除操作

一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = {     "programmers": [{         "firstName": "Brett",         "lastName": "McLaughlin",         "em

js中eval详解,用Js的eval解析JSON中的注意点

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(eval(s2)); //->und