Javascript 传递字典<;字符串,列表<;字符串>&燃气轮机;到java脚本

Javascript 传递字典<;字符串,列表<;字符串>&燃气轮机;到java脚本,javascript,json,dictionary,asp.net-web-api,Javascript,Json,Dictionary,Asp.net Web Api,我想使用JavaScript将Dictionary>传递给客户端 我确实看了这个,但我不知道该怎么做。 如果我做错了什么,我会解释我想做什么。 字典包含Excel文件中所有工作表的“名称”键,“值”是该工作表第一行的列值。 客户端的UI应该有两个“下拉列表”,第一个将包含键,即Excel文件中工作表的所有名称。 第二个包含工作表第一行的所有列值,这些列值将在第一个下拉列表中选择,实际上是作为字典中的值的列表 因此,所有后端C#代码都工作正常。现在我需要前端JavaScript方面的帮助 如何将数

我想使用JavaScript将Dictionary>传递给客户端

我确实看了这个,但我不知道该怎么做。 如果我做错了什么,我会解释我想做什么。 字典包含Excel文件中所有工作表的“名称”键,“值”是该工作表第一行的列值。 客户端的UI应该有两个“下拉列表”,第一个将包含键,即Excel文件中工作表的所有名称。 第二个包含工作表第一行的所有列值,这些列值将在第一个下拉列表中选择,实际上是作为字典中的值的列表

因此,所有后端C#代码都工作正常。现在我需要前端JavaScript方面的帮助

如何将数据解析为键值,以便在客户机在第一个下拉列表中选择某个“键”时对键进行“搜索”,以便将相关值作为列表返回

塔克斯

   var ajaxRequest = $.ajax({
        type: "POST",
        url: "http://localhost:1894/api/Values",
        contentType: false,
        processData: false,
        data: data,
        success: function(dataTest) {

        }
    });
这是我从服务器返回的JSON:

{"First":["Name","Link","User","Pass"],"Sec":["test01"]}
我将如何在C#中执行类似的搜索?我希望能够这样做:“dict.TryGetValue(key,out value);out值将作为字符串数组或列表返回。

试试这个(您不需要
var ajaxRequest
变量,您可以像这样直接调用:

 $.ajax({
    type: "POST",
    url: "http://localhost:1894/api/Values",
    dataType: "json",
    data: data,
    success: function(dataTest) {
        //dataTest should contain your data in a javascript object
        for(var i = 0; i < dataTest.First.length; i++)
        {
            window.alert("" + dataTest.First[i]);
        }
        for(var i = 0; i < dataTest.Sec.length; i++)
        {
            window.alert("" + dataTest.Sec[i]);
        }
        //etc...
        //this should print the values returned if you showed me exactly how your JSON is...
    }
 });
var key = "First";
// Or if you want to get your key from a dropdown (select) element then you could do like this:
var key = document.getElementById("myselect").options[document.getElementById("myselect").selectedIndex].innerHTML;

if(myObject[key] != undefined)
{
    //That means there is values for this key.
    //Loop through values or do whatever you want with myObject[key].
    for(var i = 0; i < myObject[key].length; i++)
    {
        window.alert("" + myObject[key][i]);
    }
}

您的响应是否返回为JSON?我不确定。在web api控制器中,我只执行“返回”“没有特殊属性或什么。如何检查它是否是JSON?在浏览器中调用服务并查看返回的响应。只需输入
http://localhost:1894/api/Values
在浏览器中查看响应是什么…这是结果:“xmlns=”“>value1 value2"看起来像xml…您可以使用javascript解析xml,但是如果它以JSON的形式返回,那么javascript会自动解析并为您生成对象,这会更容易。我不了解区别是什么。@user384496我刚刚更新了答案您应该会在对话框中看到结果弹出框…@user384496如果您返回,这应该可以工作ed JSON实际上与您发布的内容相匹配。@user384496我刚刚更新了您应该设置
数据类型:“JSON”
到json,您不需要
数据:数据,
除非您向服务传递参数,并且在这种情况下,
数据
对象将是一个键对象,值对您传递的参数…@user384496发布完整的json,以便我可以看到您正在处理什么…很难知道javascript对象是什么要包含但未看到json。。。