如何将JSON格式的数据接收到C#方法参数中

如何将JSON格式的数据接收到C#方法参数中,c#,javascript,.net,json,webkit,C#,Javascript,.net,Json,Webkit,我正在.net应用程序中使用WebKit浏览器控件。我也是JSON新手,对Java脚本知之甚少。我的任务是从java脚本代码中调用一个方法C#方法。我知道WebKit控件有“ObjectForScript”属性 C#代码:-此代码在单击其中一个按钮时执行。将java脚本注入呈现的HTML页面。 Element scriptElm = browser.Document.CreateElement("script"); scriptElm.AppendChild(browser.Document.C

我正在.net应用程序中使用WebKit浏览器控件。我也是JSON新手,对Java脚本知之甚少。我的任务是从java脚本代码中调用一个方法C#方法。我知道WebKit控件有“ObjectForScript”属性

C#代码:-此代码在单击其中一个按钮时执行。将java脚本注入呈现的HTML页面。

Element scriptElm = browser.Document.CreateElement("script");
scriptElm.AppendChild(browser.Document.CreateTextNode("Test(['ABC','EFG'],{'name':'First Name','surname':'LastName'})"));

NodeList headElm = browser.Document.GetElementsByTagName("head");
headElm[0].AppendChild(scriptElm);
上面的代码从呈现的HTML页面调用下面的Java脚本方法

Java脚本代码:

function Test(arg1,arg2)
{ 
    document.write(arg2.name); // Printing correct i.e. Firstname
    document.write(arg2); // Bad!!!! always print [Object object]   
    window.external.TestMethod(arg1,arg2); // Call method in C# code.
}
C#方法签名

public bool TestMethod(string obj1, String obj2)
{
            MessageBox.Show(obj1.ToString());
            MessageBox.Show(obj2.ToString());
            return true;
}
因此,在上述回调方法中,我无法正确获取第二个参数,即obj2。在C#中。我总是把它当作实物。我尝试将其设置为对象,但没有成功。我应该如何将其转换为正确的格式

谢谢,
Omky

正在尝试将方法签名更改为:

public bool TestMethod(object obj1, object obj2)

在上面设置一个断点,并查看实际接收的类型。另外,如果断点未命中,则您会遇到另一个问题。

是的,我找到了!!!!::)。我需要使用JSON.Stringify(arg2),然后将它从脚本传递到C#。好!!!然后我需要再次使用.NET的JSON库转换回object::)JSON.NET或JavascriptSerializer