Using LitJson in unity3d

greggreg picture greggreg · Mar 8, 2011 · Viewed 11.5k times · Source

2 questions.

1) Is it possible to use the LitJson library as is while scripting in Javascript? This is really a general question about being able to use c# source in javascript source.

2) I'm new to c# dev. I can't seem to get LitJson up and running. The following code throws this error: 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);

    }

}

any thoughts?

Answer

Calvin picture Calvin · Mar 10, 2011

I've been through a bunch of Json libraries in Unity3D. The only one I've found that doesn't have weird serialization/deserialization quirks, and works consistently in iOS, WebPlayer, and Editor is JsonFX JsonSerializer 1.4.

That said, I think your problem is that you have to instantiate a JsonReader before you can use it's methods.

Something like this might work:

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

Edit:

Whoops, I skipped part of your question. You should be able to using any managed assembly from UnityScript, just like from C#. Instead of including namespaces with using, you use import. After that the code would be virtually identical to the C# version, except for the way UnityScript defines types (var blah : Type = YadaYada();)