C#:如何从JS Object获取键的所有值?

时间:2014-10-31 04:28:58

标签: javascript c#

我在网页上有一个C#应用程序。 Web通过JS调用我的应用程序:

var data = {key1:value1, key2:value2};
app["methodName"](data);

所以,在我的应用中:

public void methodName(object data)
{
   //need here something like this:
   foreach (var key in data)
   {
      var value = data[key];
   }
}

2 个答案:

答案 0 :(得分:2)

Newtonsoft.JSON库允许您将任意JSON解析为动态对象,如下所示:

using Newtonsoft.Json.Linq;

...

dynamic obj = JObject.Parse("{\"key1\":\"value1\", \"key2\":\"value2\"}");

Console.WriteLine(obj.key1);
Console.WriteLine(obj.key2);

您在帖子中提供的方法等同于此:

public static void methodName(dynamic data)
{
    foreach (var keyValuePair in data)
    {
        var value = keyValuePair.Value;
        Console.WriteLine(keyValuePair.Name + ": " + keyValuePair.Value);
    }
}

答案 1 :(得分:0)

喜欢这个吗?

var data = {'key1':'value1', 'key2':'value2'};
    
var arr = $.map(data,function(k,v){
    return k;
});
    
document.body.innerHTML = arr;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

此处,arr将包含所有值。