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

时间:2010-12-15 13:47:02

标签: c# javascript .net json webkit

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

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;
}

所以在上面的回调方法中,我无法正确获得第二个参数ieobj2。在C#中。我总是把它当作对象。我尝试将其设置为Object但不起作用。我应该如何将其转换为正确的格式?

谢谢, Omky

1 个答案:

答案 0 :(得分:2)

尝试将方法签名更改为:

public bool TestMethod(object obj1, object obj2)

在其上设置断点并查看您实际接收的类型。此外,如果断点未命中,则会出现其他问题。