5

2つの質問。

1)Javascriptでスクリプトを作成しているときに、LitJsonライブラリをそのまま使用することはできますか?これは、JavaScriptソースでc#ソースを使用できるかどうかについての一般的な質問です。

2)私はc#devを初めて使用します。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で一貫して機能するのは、JsonFXJsonSerializer1.4です

そうは言っても、あなたの問題は、JsonReaderのメソッドを使用する前にインスタンス化する必要があることだと思います。

このようなものが機能する可能性があります:

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

編集:

おっと、私はあなたの質問の一部をスキップしました。C#と同じように、UnityScriptから任意のマネージアセンブリを使用できるはずです。に名前空間を含める代わりにusing、を使用しますimport。その後、UnityScriptが型を定義する方法を除いて、コードはC#バージョンと実質的に同じになります(var blah : Type = YadaYada();

于 2011-03-10T22:34:48.267 に答える
0

うーん。ジェイロックを試しましたか?そのコードは問題ないように見えますが、説明するドキュメントはなく、作成者はそのままにしておくことに満足しています。

于 2011-03-19T22:00:43.637 に答える
0

Unity3D用のLitJSONフォークをご覧ください。


実際、LitJsonにはいくつかの問題があり、常に期待どおりに機能するとは限らないため、すべてのUnity3Dタイプ、列挙型、および任意のクラスを処理できる単純なJSON-Libを作成しました。

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

質問について

  1. c#スクリプトでjsコードにアクセスする場合は、js codeintPluginsフォルダーを配置する必要があります。その逆も同様です。

  2. Object a = LitJson.JsonReader.Read(www.text);
    JosnReaderは静的クラスではないと思います。新しいJsonReadオブジェクトをインスタンス化してから、Read(string data)mehotdにアクセスできます。

于 2015-01-17T07:34:02.540 に答える