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

sid*_*ogg 5 javascript c# asp.net wcf json

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

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

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

{"Animals":["dog","cat","mouse"],"Owner":"Greg","Permanent":"y","ID":1,"DaysToStay":"1"}
Run Code Online (Sandbox Code Playgroud)

很简单吧?我希望"动物"成为"动物",依此类推......

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

谢谢!

Adi*_* Jr 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;
};
Run Code Online (Sandbox Code Playgroud)

编辑:使用 C# 反序列化字典中的 json 字符串:

using System.Web.Script.Serialization;
var serializer = new JavaScriptSerializer();
var dic = serializer.Deserialize<Dictionary<string,dynamic>>(yourJSONString);
Run Code Online (Sandbox Code Playgroud)

复杂的字段将被反序列化到字典中。因此,您将需要一个递归函数来检查数学化的 dic。