我是IronJS的新手,在JavaScript方法中解析JSON时遇到了困难。
我的C#代码
string jsonString = "{\"Name\": \"Ankur\", \"Sex\": \"Male\"}";
var o = new IronJS.Hosting.CSharp.Context();
o.ExecuteFile(@"C:\CustomScript.js");
var handleJson = o.Globals.GetT<FunctionObject>("HandleJson");
var result = handleJson.Call(o.Globals, jsonString).Unbox<string>();
Console.WriteLine(result);
CustomScript.js中的JavaScript方法
function HandleJson(jsonStr) {
obj = JSON.parse(jsonStr);
return obj.Name;
}
每次我执行此操作时,都会收到错误消息“ReferenceError:JSON未定义”
猜猜,“JSON.parse”方法是浏览器的原生方法,并且在服务器端不可用。 我可以使用jQuery方法 obj = $ .parseJSON(jsonStr); ,但不知道如何加载jQuery文件。
对我做错了什么或如何解决它的想法?
感谢。
答案 0 :(得分:0)
我找到了解决方法。
JSON.parse是Server上的一个未知JS方法(这就是我们收到错误的原因)...所以,我们需要在CustomScript.js之前添加/加载“json2.js”文件,然后我们会很好。
json2.js可以从以下位置下载:https://github.com/douglascrockford/JSON-js
以下是我的更新代码。
更新了C#代码
string jsonString = "{\"Name\": \"Ankur\", \"Sex\": \"Male\"}";
var o = new IronJS.Hosting.CSharp.Context();
o.ExecuteFile(@"C:\json2.js");
o.ExecuteFile(@"C:\CustomScript.js");
var handleJson = o.Globals.GetT<FunctionObject>("HandleJson");
var result = handleJson.Call(o.Globals, jsonString).Unbox<string>();
Console.WriteLine(result);
CustomScript.js
不需要进行任何更改干杯!