zoukankan      html  css  js  c++  java
  • 输出JSON问题

    拼接JSON字符串,有些特殊字符需要替换掉源代码:

            public static string ToJson(this 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: sb.Append(c); break;

                    }

                }

                return sb.ToString();

            }

    如果未替换这些特殊字符生成的JSON不会被正确解析。

    推荐使用NET提供的JavaScriptSerializer对象生成JSON字符串。

    源代码:

            public static string ToJson(this object obj){

                return ToJson(obj, null);

            }

            public static string ToJson(this object obj, IEnumerable<JavaScriptConverter> jsonConverters) {

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                if (jsonConverters != null) serializer.RegisterConverters(jsonConverters ?? new JavaScriptConverter[0]);

                return serializer.Serialize(obj);

            }

  • 相关阅读:
    CPPFormatLibary提升效率的优化原理
    Unity4、Unity5移动平台多线程渲染在部分安卓手机上会造成闪退
    Hello World!
    Mac/IOS/linux获取当前时间包含微秒毫秒的代码
    插入图块闪烁问题的原因
    选择实体时的选项
    dataGridView 单元格添加combox checkbox
    交互拾取点时 右键取消 禁止出现点无效
    曲线上到指定点最近的点
    移除实体应用程序名(xdata)
  • 原文地址:https://www.cnblogs.com/yidianfeng/p/1797983.html
Copyright © 2011-2022 走看看