使用 JINT 从 javascript 文件中读取 JSON 个对象
Reading JSON objects from javascript file using JINT
我收到了一个 javascript 文件,其中包含两个 JSON 对象,例如这个。
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 文件,其中包含两个 JSON 对象,例如这个。
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();