我正在使用JSONPEncoderFactory,JSONPBehavior解决方案在WCF中启用JSONP。这一切都很好,所有设置和运行良好,我的服务正确返回数据,没有问题。
但是,由于它们在JS中的使用方式,我需要能够将JSON变量名强制为小写,这是我迄今尚未弄清楚的。
以下是我的服务输出示例(此示例中的变量名称和值已更改为良性元素)
{"Animals":["dog","cat","mouse"],"Owner":"Greg","Permanent":"y","ID":1,"DaysToStay":"1"}
非常简单吧?我希望“动物”成为“动物”,依此类推......
我是否需要使用json解析器,或者仅仅使用正则表达式是否容易?如果有人能让我知道他们之前是怎么做的,我将不胜感激。
谢谢!
答案 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。