Unity3d 如何使用JSONObject.cs解码JSON?

Unity3d 如何使用JSONObject.cs解码JSON?,unity3d,jsonobject,Unity3d,Jsonobject,我不熟悉JSON,并使用Unity Assets Store中的JSONObject.cs来解码JSON文件。我将JSONObject.cs放在Standard Assets文件夹中,example.js放在Scripts文件夹中。当我在Unity中测试该示例(用javascripts)时: var encodedString: String = "{\"field1\": 0.5,\"field2\": \"sampletext\",\"field3\": [1,2,3]}"; var

我不熟悉JSON,并使用Unity Assets Store中的JSONObject.cs来解码JSON文件。我将JSONObject.cs放在Standard Assets文件夹中,example.js放在Scripts文件夹中。当我在Unity中测试该示例(用javascripts)时:

  var encodedString: String = "{\"field1\": 0.5,\"field2\": \"sampletext\",\"field3\": [1,2,3]}";
  var j: JSONObject = new JSONObject(encodedString);
它有一个编译器错误,即:

BCE0024: The type 'JSONObject' does not have a visible constructor that matches the argument list '(String)'.

我是否需要在示例文件中再次声明JSONObject类?如果您有任何想法,我们将不胜感激

你能提供更多信息吗?
您所犯的错误是,不能将字符串作为参数添加到构造函数中。也许您可以构造JSonObject,然后找到解码Json字符串的相关方法?

在这段时间内工作2小时后。。。我发现了问题所在

因此,JSONObject的C#类有一个构造函数(您和我正在使用该构造函数)和可选参数。因此,我从我的尝试中了解到,除非您发送选项,否则从Javascript调用它将不起作用

我通过在JS的调用中提供默认值使其工作

这是承包商:

public JSONObject(string str, int maxDepth = -2, bool storeExcessLevels = false, bool strict = false) {
    Parse(str, maxDepth, storeExcessLevels, strict);
}
而不是像这样从JS调用:

var obj: JSONObject = new JSONObject("{json here}");
调用它发送构造函数具有的相同默认值:

var obj: JSONObject = new JSONObject("{json here}", -2, false, false);

这样,您就不会使用默认设置,它也可以工作了(我知道它非常出色,但我没有时间做更多的工作……因此,如果有人遇到同样的问题,这里有一个解决方案)

谢谢您的回答。构造函数有一个将字符串用作参数的函数。。。最后,我从Unity assets store中删除了JSONObject资产,并构建了另一个jsonparse..谢谢!作为补充说明,从我的试验来看,即使您将Javascript正确地放在plugins文件夹中,它也不能与Javascript一起工作。