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);

            }

  • 相关阅读:
    HDU 1290 献给杭电五十周年校庆的礼物(面分割空间 求得到的最大空间数目)
    2018年暑假ACM个人训练题6 解题报告
    HDU 2096 小明A+B(%的运用)
    HDU 2097 sky数 (进制转化)
    布局(codevs 1242)
    Remmarguts’ Date(poj 2449)
    魔法猪学院(codevs 1835)
    统计单词个数(codevs 1040)
    小L 的二叉树(洛谷 U4727)
    Shortest Prefixes(poj 2001)
  • 原文地址:https://www.cnblogs.com/yidianfeng/p/1797983.html
Copyright © 2011-2022 走看看