2017-06-29 12 views
-1

WWW GET結果ユニティ:JSON以下

{ 
    "status":200, 
    "watchlist":[ 
     { 
      "Category":"Movie", 
      "ShowList":[ 
       { 
        "id":"59534a851339762f38e16ad7", 
        "Name":"Play zombie tonight", 
        "Description":"descblablabla", 
        "IMDB":1, 
        "Tag":[ 
         "horror", 
         "comedy" 
        ], 
        "Picture":{ 
         "id":"59534a8b1339762f38e16b6d", 
         "Url":"imgurlbla", 
         "DisplayOrder":0 
        } 
       } 
      ] 
     }, 
     { 
      "Category":"Variety", 
      "ShowList":[ 
       { 
        "id":"59532bf51339742f380d4cb1", 
        "Name":"Yearning for life", 
        "Description":"descblablabla", 
        "IMDB":1, 
        "Tag":[ 
         "reality show" 
        ], 
        "Picture":{ 
         "id":"59532bfb1339742f380d4d3a", 
         "Url":"imgurlbla", 
         "DisplayOrder":0 
        } 
       } 
      ] 
     } 
    ] 
} 

私はList<>に結果を割り当てたいですリストにJSONを割り当てるので、私は簡単にWatchListの値にアクセスすることができます。以下は私が試したコードです。

List<WatchList> viewitemlist = JsonUtility.ToJson (www.text); 

私もLitJSONと呼ばれるライブラリを試してみました:

string json = www.text; 
JsonData jsonObject = JsonMapper.ToObject(json); 
List<On360WatchList> viewitemlist = 
JsonMapper.ToObject<List<On360WatchList>> (jsonObject ["watchlist"].ToJson()); 
+0

ところで、これはJson配列でもありません。あなたのコード[ここ](http://json2csharp.com/)を貼り付けると、正しいjsonデータが得られます。 'RootObject viewObj = JsonUtility.ToJson(www.text);' – Programmer

+0

@Programmer前の質問で答えた例を使用する必要がありますか?私は 'List <> 'の例を見つけることができませんでした。 –

+0

jsonはリストや配列でさえありません。私の最初のコメントを読んだことがありますか?それをお読みください。 – Programmer

答えて

-1

私はユニティでJSON配列を解析するとき、あなたはJsonUtilityでJSON配列を解析することはできません、あなたが使用する必要があり、同様の問題がありました外部ライブラリ、SimpleJSONは私のために働いた、ちょうどあなたのスクリプトフォルダに.csファイルを貼り付けます。 JSONライブラリはSimpleJSONからダウンロードできます。下にスクロールしてSimpleJSON.csセクションまでスクロールし、スクリプトフォルダの新しい.csファイルにすべてをコピーし、using SimpleJSON; var jsonObject = JSON.Parse(response)を使用して応答を解析してください。配列としてアクセスしたり、ウォッチリストに割り当てることができます。

+0

はSimpleJSONを使用する必要があります;> –

+0

うん!申し訳ありませんが、私はそれを逃した! –

+0

申し訳ありません、**あなたは** json配列用に外部ライブラリを使用する必要はありません。 – Programmer

0

これは、GETのResultオブジェクトを独自の型に逆シリアル化したいことを意味します。したがって、オブジェクトを逆シリアル化するためにNewtonsoftライブラリを使用する必要があります。 は、パッケージマネージャコンソールのライブラリは、以下のコマンド

に書く取得するには

Newtonsoft.Json

・パッケージをインストールするか、esily NuGetパッケージマネージャからダウンロードしてください。

は、フォルダを作成します:資産/プラグインあなたは* .dllファイルを入れて、追加 は、その後、あなたがすでに

string TargetObject = YourObject; 
List<WatchList> Wl = JsonConvert.DeserializeObject<List<WatchList>>(TargetObject); 

Unityにそれを追加するために、これを試してみてくださいを持っているオブジェクトをデシリアライズするために、次のコードを使用しますそれを参考にしてください。

参照を追加するにはVisual Studioのソリューションエクスプローラーで[プロジェクト]> [参照の追加]の下にあるアナライザーを強調表示して、Assets/Pluginにある* .dllファイルを参照できます。

それとも

インストール・パッケージUnity.Newtonsoft.Json -Versionを7.0.0

Unity.Newtonsoftこのコマンドを実行してください| NuGut

+0

UnityはNewtonsoft.JSONをインストールできますか? –

+0

@ImHappy答えを編集してみて、あなたが何を得るか教えてください – AlameerAshraf