在C#中将JSON变量转换为小写

时间:2011-09-04 17:45:59

标签: c# javascript asp.net wcf json

我正在使用JSONPEncoderFactory,JSONPBehavior解决方案在WCF中启用JSONP。这一切都很好,所有设置和运行良好,我的服务正确返回数据,没有问题。

但是,由于它们在JS中的使用方式,我需要能够将JSON变量名强制为小写,这是我迄今尚未弄清楚的。

以下是我的服务输出示例(此示例中的变量名称和值已更改为良性元素)

{"Animals":["dog","cat","mouse"],"Owner":"Greg","Permanent":"y","ID":1,"DaysToStay":"1"}

非常简单吧?我希望“动物”成为“动物”,依此类推......

我是否需要使用json解析器,或者仅仅使用正则表达式是否容易?如果有人能让我知道他们之前是怎么做的,我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以在JavaScript上使用此功能:

FN = function (obj)
{
    var ret = null;
    if (typeof(obj) == "string" || typeof(obj) == "number")
        return obj;
    else if (obj.push)
        ret = [];
    else
        ret = {};

    for (var key in obj)
        ret[String(key).toLowerCase()] = FN(obj[key]);
    return ret;
};

编辑: 使用C#:

反序列化Dictionary中的json字符串
using System.Web.Script.Serialization;
var serializer = new JavaScriptSerializer();
var dic = serializer.Deserialize<Dictionary<string,dynamic>>(yourJSONString);

复杂字段将被反序列化为Dictionary。所以你将需要一个递归函数来检查matherialized dic。