Hel*_*oCW 2 android gson kotlin
我在 Kotlin 中使用 Gson 将对象转换为 json 字符串。
var json2 可以返回正确的结果,但是var json1 返回null,为什么?
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import bll.SettingManage
import info.dodata.mirror.R
import model.MSetting
import com.google.gson.Gson
import utility.PreferenceTool
class UIMain : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_main)
data class WiFiDefA(val Name:String, val Status: String)
var aWiFiDefA=WiFiDefA("a","b")
var json1=Gson().toJson(aWiFiDefA)
var aWiFiDefB=WiFiDefB("c","d")
var json2=Gson().toJson(aWiFiDefB)
}
data class WiFiDefB(val Name:String, val Status: String)
}
Run Code Online (Sandbox Code Playgroud)
您观察到的是 Gson 的一个已知限制:它不会序列化匿名或本地类。这就是为什么 Gson 代码明确拒绝序列化WiFiDefA在方法中定义的类onCreate(这是@SangeetSuresh 通过调试 Gson 代码观察到的)。
正如您在https://github.com/google/gson/issues/298中看到的那样,提出了一个问题来改变它并允许匿名和本地类的序列化,但该问题一年多前在没有明确说明的情况下关闭原因。
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |