5

2个问题。

1) 使用 Javascript 编写脚本时是否可以按原样使用 LitJson 库?这确实是一个关于能够在 javascript 源代码中使用 c# 源代码的普遍问题。

2)我是 C# 开发新手。我似乎无法启动并运行 LitJson。以下代码引发此错误:An object reference is required to access non-static memberLitJson.JsonReader.Read()'`

using UnityEngine;
using System.Collections;

public class Loadr : MonoBehaviour {
string url= "http://developer.echonest.com/api/v4/artist/images?api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=0&license=unknown";
void  Start (){
    WWW www = new WWW(url);
    print(www.text);
    Object a = LitJson.JsonReader.Read(www.text);
    print(a.response.status);

    }

}

有什么想法吗?

4

4 回答 4

5

我已经在 Unity3D 中使用了一堆 Json 库。我发现的唯一一个没有奇怪的序列化/反序列化怪癖,并且在 iOS、WebPlayer 和 Editor 中始终如一的工作是JsonFX JsonSerializer 1.4

也就是说,我认为你的问题是你必须先实例化一个 JsonReader 才能使用它的方法。

像这样的东西可能会起作用:

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

编辑:

哎呀,我跳过了你的部分问题。您应该能够使用 UnityScript 中的任何托管程序集,就像使用 C# 一样。using你使用.而不是包含名称空间import。之后代码几乎与 C# 版本相同,除了 UnityScript 定义类型的方式 ( var blah : Type = YadaYada();)

于 2011-03-10T22:34:48.267 回答
0

关于问题

  1. 如果你想在 c# 脚本中访问 js 代码,你应该将 js 代码放在 Plugins 文件夹中,反之亦然。

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

于 2015-01-17T07:34:02.540 回答
0

看看 Unity3D 的LitJSON分支:


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

在 GitHub 上找到它:Tiny-JSON

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

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

// decode
IList<Animal> a = Json.Decode<IList<Animal>>("[{\"legs\":4}, {\"legs\":2}]");
于 2015-01-16T10:53:22.177 回答
0

嗯。你试过杰罗克吗?它的代码看起来不错,但没有任何文档可言,作者很满意地保留它。

于 2011-03-19T22:00:43.637 回答