gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:29:07 24 4
gpt4 key购买 nike

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

C# 代码:- 此代码在单击按钮之一时执行。将 Java 脚本注入(inject)到渲染的 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# 中。我总是把它当作对象。我尝试将其设置为对象,但没有成功。我应该如何将其转换为正确的格式?

谢谢,欧姆奇

最佳答案

尝试将方法签名更改为:

public bool TestMethod(object obj1, object obj2)

在其上设置断点并查看您实际收到的类型。另外,如果断点没有命中,则会遇到不同的问题。

关于c# - 如何将 JSON 格式的数据接收到 C# 方法参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com