団結いくつかの一般的に使用される分析方法JSON

:より転載https://blog.csdn.net/tianyongheng/article/details/78989612

現在、統一解析JSONの接触いくつかあります
。もっと人気listjson(データとJSONオブジェクトは1でなければなりません)
2.現在の団結は(複雑なJSONを解決することはできません)JsonUtility来る
3.Newtonsoft.Json(勧告は複雑で解決することができますJSON、およびJSONフィールド柔軟なものを、必要としない)
(ダウンロード:HTTPS://github.com/SaladLab/Json.Net.Unity3D/releases)

多様化を提供JSONを解析するlistjsonも、jsonDataに分割することができますこれはJsonMapperからのデータ・オブジェクトによって定義されたモードに変換することができます。
それ以外の場合は解決に失敗し、listJsonは機能豊富な、しかし、1つのフィールドJSONをパースにJsonMapper、カスタムオブジェクトやフィールドでカスタムオブジェクトに変換する場合(フィールド内のJSONを、カスタムオブジェクトが持っている必要があります) 。
たとえば、次のように
jison:

1   JSON = "@ 
2            {
 3               "" D "": "" D ""、
 4              ""アルバム"":{    
 5               "" CC "": "" CC ""          
 6                ""名前"":" 「月のダークサイド」」、
 7                『』アーティスト『』: 『』ピンク・フロイド『』、
 8                『』年『』:1973、         
 9                『』トラック『』:[
 10                  『『』私に話します』、
図11は、                 ""、 "ブリーズ"
 12                  " "の実行時に""を
 13                ]、
 14                "" TT "": "" TT ""、
15               "" tracksOb "":[{ "" trackOb "": "" 11 ""}、{ "" trackOb "": "" 22 ""}]、
 16               "" BB "": "" BB ""         
 17              }
 18            }
 19          

モッズJSONに対応しては、3い
OO、TestModel、TestModel2があります

1つの パブリック クラスOO
 2  {
 3      パブリック 文字列D。
4      公共TestModelアルバム。
5      公共の 文字列のBB。
6  }
 7  
8  パブリック クラスTestModel
 9  {
 10      公共 の文字列名。
11      公共の 文字列アーティスト。
12      公共 のint 年。
13      パブリック 文字列[]トラック。
14      公衆TestModel2 [] tracksOb。
15  }
16  
17  パブリック クラスTestModel2
 18  {
 19、     公衆 ストリングtrackOb。
20  }

これらは解析されるべきであり、対応するカスタムJSONデータモデル
1の分析データlistJsonは、

1  解析方法
 2   公共 静的 T GetData2 <T>(文字列テキスト)T:クラス3     {
 4 // JsonDataテーブル= AnalysisJson.Analy <JsonData>(テキスト)。5           T T = JsonMapper.ToObject <T> (table.ToJson())。
6 7 // T T = JsonConvert.DeserializeObject <T>(テキスト)。
8 // T T = JsonUtility.FromJson <T>(テキスト)。9 リターントン。
10      }
          
 
                   
         
1 OO O = GetData2 <OO>(JSON)。

JSON文字列は、多くのオブジェクトが含まれているため、与えられた、とされているフィールドの解像度を実行し
、データOO、TestModel、TestModel2オブジェクトではなく、すべてのJSON文字列フィールドと一から一、listjsonは非常に厳格な解決を。

2. Newtonsoft.Json

1  解析方法
 2   公共 静的 T GetData2 <T>(文字列テキスト)T:クラス3     {
 4 // JsonDataテーブル= AnalysisJson.Analy <JsonData>(テキスト)。
5 // T T = JsonMapper.ToObject <T>(table.ToJson())。6 7           T T = JsonConvert.DeserializeObject <T> テキスト)。
8 // T T = JsonUtility.FromJson <T>(テキスト)。9 リターントン。
10      }
                    
 
         
         
1 OO O = GetData2 <OO>(JSON)。

完全に解決、エラーなしで実行します。

3. JsonUtility来る団結を使用してください

1  解析方法
 2   公共 静的 T GetData2 <T>(文字列テキスト)T:クラス3     {
 4 // JsonDataテーブル= AnalysisJson.Analy <JsonData>(テキスト)。
5 // T T = JsonMapper.ToObject <T>(table.ToJson())。
6 7 // T T = JsonConvert.DeserializeObject <T>(テキスト)。8          T T = JsonUtility.FromJson <T> テキスト)。
9 リターントン。
10      }
                     
         
         
1 OO O = GetData2 <OO>(JSON)。

実行します。解決されていないいくつかのオブジェクトは、文句を言うでしょう

おすすめ

転載: www.cnblogs.com/leonpf/p/11762867.html