javascript - 使用 JINT 从 javascript 文件读取 JSON 对象

标签 javascript c# .net json jint

我收到了一个包含两个 JSON 对象的 JavaScript 文件,如下所示。

var languages = {"Languages":["English","Cymraeg","Deutsch"]};
var labels = [{"$JOB":["Job","Orchwyl","Auftrag",]},{"$JOB_NO":["Job Number","Rhiforchwyl","Auftragsnummer"]}];

我需要将两个 JSON 对象序列化为我可以在 .NET 中操作的对象。我正在使用 JINT 从文件中获取两个值,如下所示。

Engine js = new Engine();
js.Execute(fileContents);
languages = js.GetValue("languages");
labels = js.GetValue("labels");

但我现在无法对这两个值做任何事情。我无法解析 JSON,这些值只是作为一个奇怪的对象数组出现,我实际上无法确定这些值。

关于如何访问 JSON 对象有什么建议吗?

最佳答案

这里没有 JSON。 这是 javascript 代码,在计算时创建 javascript 对象。

现在,您可以将该 javascript 对象转换为 JSON 字符串。 我发现的最简单的方法是让 JINT 为我做这件事,但我不是 Jint 专家,可能有更好的方法。

// Run javascript, inside the interpreter, to create JSON strings
js.Execute("languages = JSON.stringify(languages)");
js.Execute("labels = JSON.stringify(labels)");
// Extract the strings from the JS environment, into your c# code as strings
// Now, you can deserialize them as normal JSON
var languagesJsonString = js.GetValue("languages").AsString();
var labelsJsonString = js.GetValue("labels").AsString();

关于javascript - 使用 JINT 从 javascript 文件读取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49731891/

相关文章:

javascript - 具有相同名称的多个变量

javascript - jQuery - 检测 div 是否有 2 个类

javascript - Node 和 Socket.io ...阻止外部客户端连接?

c# - 发布字符串请求

c# - Index 的其他原因超出了 .Net 字典中的数组范围

.net - 从本地主机连接到 asp.net web api 时出现 SSL 错误

c# - OpenCV: src.depth() == dst.depth() && src.size == dst.size 异常

JavaScript:将伪代码转换为 JavaScript 代码

c# - 为什么 Lambda 变量范围存在于 LINQ 查询之外?

c# - 原始文件比 GZip 解压文件大