簡體   English   中英

將LitJson轉換為Newtonsoft Json以在IOS設備Unity C#上運行

[英]Convert LitJson to Newtonsoft Json for run at IOS device Unity C#

如何在unity c#中將LitJson Json轉換為NewtonSoft Json?

范例:

在立森

JsonData CJsonData;
cJsonData = JsonMapper.ToObject(www.downloadHandler.text);
Debug.log(cJsonData["reason"].ToString();

//此cJsonData可以包含一個嵌套數組。

該代碼在Newtonsoft Json for ios中的外觀如何?

我不想創建類屬性,因為從www.donwloadHandler.text返回的內容可能有所不同。 這取決於回報。 當使用數據類型為JsonData的LitJson並使用JsonMapper.Tobject時,我可以輕松獲取數據,而無需任何其他代碼。

*

在LitJson中,我們具有DataType JsonData,它可以自動將其從Mapper轉換為關聯的數組。

*

我希望我能獲得像LitJson這樣的數據

的debug.log(cJsonData [ “原因”]的ToString();

或者可能

的debug.log(cJsonData [ “原因”] [ “ABC”]的ToString();

或者可能

的debug.log(cJsonData [ “原因”] [ “CC”] [ “AAA”]的ToString();

但是在newtonsoft json中,我們必須添加一個類來反序列化對象。

在newtonsoft json中:

someclass Json = JsonConvert.DeserializeObject<someclass>(www.donwloadHandler.text);

這我不想要。 因為我們需要添加一些類

和這個 :

string data = JsonConvert.DeserializeObject(www.downloadHanlder.text);

這也是我不想要的。 因為它是字符串,而不是像litjson這樣的關聯數組。

明白了嗎 ?

謝謝

差不多。 無需反序列化即可讀取數據,只需使用JObject:

using System;
using Newtonsoft.Json.Linq;

public class Program
{
    public static void Main()
    {
        string json = @"
            {
              ""CPU"": ""Intel"",
              ""Integrated Graphics"": true,
              ""USB Ports"": 6,
              ""OS Version"": 7.1,
              ""Drives"": [
                ""DVD read/writer"",
                ""500 gigabyte hard drive""
              ],
              ""ExtraData"" : {""Type"": ""Mighty""}
            }";

        JObject o = JObject.Parse(json);

        Console.WriteLine(o["CPU"]);
        Console.WriteLine();
        Console.WriteLine(o["Drives"]);
        Console.WriteLine();
        Console.WriteLine(o["ExtraData"]["Type"]);

        Console.ReadLine();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM