LitJson解析遇到的坑


今天在些項目的時候,遇到一個坑,現在跟大家分享一下

我遇到的錯誤是MissingMethodException: Method not found: 'Default constructor not found...ctor() of bagItemJson'. 大概的意思就是說沒有找到什么方法

下面我們來看看為什么會遇到這個問題

首先先寫一個類

public class BagItem   //一個類,用來表示背包里面的裝備

{

     public string name;

     public int level;

     public BagItem(string name, level)

     {

          this.name = name;

          this.level = level;

      }

}

我們可能知道,LitJson里面有一個方法可以直接把對象轉化為Json字符串,當然也有一個方法可以把對象轉化成的字符串在轉化為對象, 例如

   BagItem bi =  JsonMapper.ToObject<BagItem>(data.ToString());  其中 data是JsonData類型的

這樣就可以吧Json字符串轉化為對象了

但這樣看的話,是完全正確的,沒有問題的,但是在運行的時候,就出現了上面的錯誤,當時我問了很多人,后來對比發現,有的人是可以這樣轉化成功的,他們寫的類和我的唯一不一樣的地方就是構造函數,我是用構造函數賦值,初始化,但是他們是先實例化,然后在一個一個給每一個屬性賦值,這個就是問題的關鍵了,因為我自己寫了一個構造函數,把默認的構造函數給私有化了,這樣的話在上面的轉化為對象的時候,就找不到構造函數了,所以就轉化不了實例了,這時候就會出現找不到該方法,實際上是找不到構造函數了

另外,值得一說的是,在轉化為對象的方法里面,應該是先實例化出來一個對象,然后在給每個對象賦值,這時候的實例化是用默認構造函數實例化的,並不是用自己的構造函數實例化的,所以上面的錯誤只需要把默認構造函數給加上,寫成Public就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM