【问题标题】:Using LitJson in unity3d在 unity3d 中使用 LitJson
【发布时间】:2011-03-08 22:29:11
【问题描述】:

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);

    }

}

有什么想法吗?

【问题讨论】:

    标签: c# json unity3d litjson


    【解决方案1】:

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

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

    这样的事情可能会奏效:

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

    编辑:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        关于问题

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

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

        【讨论】:

          【解决方案4】:

          查看 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}]");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-08
            • 2011-06-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多