开发者

Converting JSON variables to lowercase in C#

开发者 https://www.devze.com 2023-04-02 03:29 出处:网络
I\'m using the JSONPEncoderFactory,JSONPBehavior solution to enable JSONP in WCF. That\'s all fine, it\'s all set up and working well, my service returns the data correctly, no problems there.

I'm using the JSONPEncoderFactory,JSONPBehavior solution to enable JSONP in WCF. That's all fine, it's all set up and working well, my service returns the data correctly, no problems there.

However, I need to be able to force the JSON variable names into lowercase due to the way they are being used in JS, and this is something I haven't been able to figure out as yet.

Here is an example of my service output (the variable names and values have been changed to benign elements for this example)

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

Pretty simple right? I want the "Animals" to be "animals", and so on...

Do I nee开发者_StackOverflow中文版d to use a json parser for this, or is it easy enough just to use a regular expression? I'd be grateful if someone could let me know how they've done this before.

Thanks!


You can use this function on 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;
};

EDIT: Deserialize a json string in a Dictionary with C#:

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

The complex fields will be deserialized into Dictionary. So you will ned a recursive function for inspect the matherialized dic.

0

精彩评论

暂无评论...
验证码 换一张
取 消