C# 在unity3d中使用LitJson

C# 在unity3d中使用LitJson,c#,json,unity3d,litjson,C#,Json,Unity3d,Litjson,2个问题 1) 在使用Javascript编写脚本时,是否可以按原样使用LitJson库?这实际上是一个关于在javascript源代码中使用c#源代码的一般问题 2) 我是c#dev的新手。我似乎无法启动和运行LitJson。以下代码引发此错误:访问非静态成员需要对象引用LitJson.JsonReader.Read()` 有什么想法吗?我浏览了Unity3D中的许多Json库。我发现的唯一一个没有奇怪的序列化/反序列化怪癖,并且在iOS、WebPlayer和编辑器中始终如一地工作的是 也就是

2个问题

1) 在使用Javascript编写脚本时,是否可以按原样使用LitJson库?这实际上是一个关于在javascript源代码中使用c#源代码的一般问题

2) 我是c#dev的新手。我似乎无法启动和运行LitJson。以下代码引发此错误:
访问非静态成员需要对象引用
LitJson.JsonReader.Read()`


有什么想法吗?

我浏览了Unity3D中的许多Json库。我发现的唯一一个没有奇怪的序列化/反序列化怪癖,并且在iOS、WebPlayer和编辑器中始终如一地工作的是

也就是说,我认为您的问题在于必须先实例化JsonReader,然后才能使用它的方法

类似的方法可能会奏效:

var reader = new LitJson.JsonReader();
Object a = reader.Read(www.text);
编辑:

哎呀,我跳过了你问题的一部分。您应该能够从UnityScript使用任何托管程序集,就像从C#一样。您可以使用
import
,而不是使用
包含名称空间。在这之后,除了UnityScript定义类型的方式(
var blah:Type=YadaYada();

Hm之外,代码实际上与C版本完全相同。您试过了吗?它的代码看起来不错,但没有任何文档可供参考,作者也很满意这样做。

看看Unity3D的fork:


实际上,LitJson有一些问题,并且并不总是像预期的那样工作,所以我创建了一个简单的JSON库,它可以处理所有Unity3D类型、枚举和任意类

在GitHub上找到它:

您可以非常简单地使用它:

// encode
Animal a = new Animal(4);
string json = Json.Encode(a);

// decode
IList<Animal> a = Json.Decode<IList<Animal>>("[{\"legs\":4}, {\"legs\":2}]");
//编码
动物a=新动物(4);
字符串json=json.Encode(a);
//解码
IList a=Json.Decode(“[{\'legs\':4},{\'legs\':2}]”);
关于问题

  • 如果你想访问c#脚本中的js代码,你应该放置js代码int插件文件夹,反之亦然

  • objecta=LitJson.JsonReader.Read(www.text)
    我认为JosnReader不是一个静态类,您应该实例一个新的JsonRead对象,然后您可以访问Read(string data)mehotd

  • // encode
    Animal a = new Animal(4);
    string json = Json.Encode(a);
    
    // decode
    IList<Animal> a = Json.Decode<IList<Animal>>("[{\"legs\":4}, {\"legs\":2}]");