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

本文关键字:转换 变量 中将 JSON | 更新日期: 2023-09-27 18:07:36

我正在使用JSONPEncoderFactory,JSONPBehavior解决方案来启用WCF中的JSONP。一切都很好,一切都设置好了,工作正常,我的服务正确返回数据,没有问题。

然而,我需要能够强制JSON变量名小写,由于他们在JS中使用的方式,这是我还没有能够弄清楚的东西。

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

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

很简单,对吧?我希望"Animals"是"Animals",以此类推…

我是否需要使用json解析器,或者仅仅使用正则表达式就足够容易了?如果有人能告诉我他们以前是怎么做的,我会很感激的。

谢谢!

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

你可以在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中。因此,您将需要一个递归函数来检查物化的dic。