gpt4 book ai didi

javascript - 如何检查变量是否是 C# 中嵌入的 Javascript(noesis.Javascript) 中的数组?

转载 作者:行者123 更新时间:2023-12-03 07:24:55 26 4
gpt4 key购买 nike

这里有人有 Javascript.Net 的经验吗?
我正在使用 JavaScript.Net 在 C# 中嵌入 javascript .
我有一个简单的任务来检查给定的变量是否是有效的数组。我已经通过在脚本中附加变量来设法获得正确的答案。
此方法有效并返回true:

JavascriptContext context = new JavascriptContext();
public static string IsValidArray(string vari , JavascriptContext context)
{

object isValid = context.Run(@"
function check(){ var arr = " + vari + ";if(arr.constructor == Array){return true; }else {return false;}} check();");


return (string)isValid;

}

它工作正常。但是当我尝试将此变量作为函数的参数传递时,它返回 false。代码如下:

JavascriptContext context = new JavascriptContext();
string array = "['hello','hello2']";
context.SetParameter("arr", array);
string isValid = IsValidArray(context);

public static string IsValidArray(JavascriptContext context)
{
object isValid = context.Run("function check(vari){return (vari.constructor == Array);} check(arr);");
return (string)isValid;
}

如何使用参数来做到这一点?

最佳答案

我将详细说明我的评论。

我认为你的问题是你传递的是数组的字符串表示形式,而不是数组。您可以尝试类似 context.SetParameter("arr", new[] {"hello", "hello2"));

如果您有一个字符串,并且想将其转换为对象,我建议使用 Json.NET,这非常棒。搜索有关如何安装它的教程。然后你可以简单地做:

string json = "['hello','hello2']";
List<String> array = Newtonsoft.Json.JsonConvert.DeserializeObject<List<String>>(json);
另一种方法是按原样读取字符串,然后将其传递到 JavaScript,知道它只是一个字符串,然后调用 JSON.parse(theString) JavaScript 以便将其解释为数组、对象或其他任何内容。

关于javascript - 如何检查变量是否是 C# 中嵌入的 Javascript(noesis.Javascript) 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042110/

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