Допустим, у меня есть данные json, которые могут иметь разные имена ключей для одного и того же поля данных
Тип Json A
{"width": 1024, "height":768, "color": "# ff0000"}
также есть отображение json, которое дает мне то, что attirbute должно сопоставить с тем, что в классе данных Json типа A
{"width": w, "height": h, "color": "Color"}
Json Тип B
{"widthOfobj": 1024,"heightOfobj": 768, "colorOfobj": "# ff0000"}
Документ отображения типа Json B
{"widthOfobj": w, "heightOfobj": h, "colorOfobj": "Color"}
в моем классе данных kotlin Я определил obj как
data class dimension(W: int, H: int, Color: String)
, теперь я хочу сопоставить json типа A или B скласс данных kotlin с помощью чтения документа сопоставления.Как бы я поступил так?
вот поток, о котором я думаю для ясности
код sudo
Data class dimmenison( W: int, H: int, Color:String)// already defined
//Read mapping document to map
val Map = readmappingfile(mappingfile) //e. g Width to W
// Height to H
Val input Data= readJson(input) // { "width": 1024, "height": 768, "color": "#ff0000" }
Val show result = applytransformation( mappingfile, input)
// inside applytransformation Read the Map and data and serialize it to data class
//oneway of just serializing it would be using gson
val result = gson.fromJson(input,dimmension::class.java) // this would work if input was in format ( w->v , h-> v , Color->v)
// как мне сделать это изменение, чтобы преобразовать вес в W, прежде чем я вызовуКод GSON выше, чтобы сериализовать его в класс данных.Обратите внимание, что он должен быть достаточно динамичным, поэтому мы не пишем жестко закодированное отображение.