Tag: json

Kotlin JS JSON反序列化

我在javascript平台上使用kotlin。 此代码在第六行上失败,但“Uncaught TypeError:aciterator不是函数”exception。 class A(val b: String, val c: List) fun main(args: Array) { val a = JSON.parse(“””{“b”: “b_value”, “c”: [“c_value_1”, “c_value_2″]}”””) println(ab) for (c in ac) println(c) } 在JavaScript的debuger我可以看到,该对象“一”是反序列化。 但我认为,它不是一个有效的typesA的kotlin对象。有什么办法,如何从对象“a”或从原始的json字符串创建typesA的有效kotlin对象实例?

如何配置使用klaxon库的spring引导

有一个klaxon库 – 用于kotlin JSON解析器 如何配置Spring Boot来使用它来创建一个REST API: @RestController class SampleController { @RequestMapping(“/test”, method = [RequestMethod.POST]) fun test(@RequestBody body:JsonObject): JsonObject { //work with body val (KLAXON object) //return KLAXON object } } @RequestBody body:JsonObject – 是一个Klaxon对象,所以我们不想使用标准的Jackson2ObjectMapperBuilder for RequestBody。 为了简单起见,我们不希望将它用于Response主体。 Post body是一些动态数据,所以我想在lib中使用Low level API ,而不是Object binding API 。

暴露:如何解析JSON到一个实体类

我有以下用户表对象和实体类: object UserTable : IntIdTable() { val name = varchar(“name”, 256) } class User(id: EntityID): IntEntity(id) { companion object : IntEntityClass(UserTable) val name by UserTable.name } 有没有办法使用Gson(或其他库)来解析JSON到User实例,然后插入它? 从我可以告诉,看来我必须创建一个中间的UserData数据类,然后手动复制字段。 data class UserData { var id: Int? var name: String? } fun main() { val data = Gson().fromJson(“…”, UserData::class.java) val user = User.new { name = data.name […]

在Kotlin解析json

我试图在Kotlin中解析Json。 我遇到了很多麻烦,似乎很多人学习Java之后的Kotlin …不是我,我是一个Python家伙。 我得到了一个Kotlin Jupyter笔记本,运行速度相当快( https://github.com/ligee/kotlin-jupyter ),之后我设法从bittrex api中获取信息,如下所示: import java.net.URL val result = URL(“https://bittrex.com/api/v1.1/public/getmarkets”).readText() 我花了很长时间才发现我需要添加import java.net.URL,这似乎总是隐含在所有的代码示例中。 无论如何,这给了我一个响应在JSON(“结果参数”): {“success”:true,”message”:””,”result”:[{“MarketCurrency”:”LTC”,”BaseCurrency”:”BTC”,”MarketCurrencyLong”:”Litecoin”,”BaseCurrencyLong”:”Bitcoin”,”MinTradeSize”:0.01469482,”MarketName”:”BTC-LTC”,”IsActive”:true,”Created”:”2014-02-13T00:00:00″,”Notice”:null,”IsSponsored”:null,”LogoUrl”:”json/6defbc41-582d-47a6-bb2e-d0fa88663524.png”},{“MarketCurrency”:”DOGE”,”BaseCurrency”:”BTC”,”MarketCurrencyLong”:”Dogecoin”,”BaseCurrencyLong”:”Bitcoin”,”MinTradeSize”:274.72527473,”MarketName”:”BTC-DOGE”,”IsActive”:true,”Created”:”2014-02-13T00:00:00″,”Notice”:null,”IsSponsored”:null,”LogoUrl”:”json/a2b8eaee-2905-4478-a7a0-246f212c64c6.png”},{“MarketCurrency … 现在,在Python中,我只是将“json()”添加到“result”参数中,然后我可以将json字段作为具有多个级别的字典来处理,例如 result[“success”] 会给我: true 有没有像Kotlin那样的东西? 我试过了Klaxon https://github.com/cbeust/klaxon ,又花了我很多时间才意识到我要import com.beust.klaxon.string ,在网站上没有提到例如,所以一个侧面的问题是:当你find代码示例时,你怎么知道你需要导入什么? 似乎每个人都知道…但我离题了。 我的主要问题是:如何解决Json的单独字段并将它们分解为单独的variables? 最高的问候。

使用Moshi反序列化可以是两种数据types之一的字段

我从OrientDB服务器收到一些JSON,如下所示: { … “out”: …, “in”: …, … } 现在这两个字段可以是两种types之一: String和我自己的自定义对象(我们称之为一个Record )。 例如,对于一个请求我可能会收到: { … “out”: “#17:0”, “in”: { … }, … } 对于另一个我可能会得到: { … “out”: { … }, “in”: “#18:2”, … } 等等。 两者都可能是String ,都可能是Records ,一个可能是一个String ,另一个可能是一个Record ,等等。 现在,当我使用Moshi对这种JSON进行反序列化时,我有两个参数out和in来保存它们各自键的值; 然而,因为这些值不是固定的数据types,所以说起来容易做起来难。 创建多个POJO(或“POKO”,我猜是因为我正在使用Kotlin)不起作用,因为这些对象可以在其他 JSON对象内部find。 我需要一个单一的对象,这些参数可以采取一个可变的数据types。 那么我该怎么做呢? 我需要在Moshi中编写一个自定义适配器来序列化/反序列化这些值吗? 如果是这样,我将如何去写一个可以分配一个特定的数据types取决于参数的值? 或者是有某种types的Kotlin类/函数/扩展函数,我可以find/写入,可以容纳两种可能的数据types? 如果它是相关的,我也使用Retrofit 2 + RxJava 2异步地进行HTTP调用,所以如果这些库中有任何数据types或函数有助于这样的事情,那么我就是耳熟能详。 即使任何人只能用Java来回答,因为我可以自己转换代码。 […]

麻烦“For-Loop范围必须有一个’iterator()’方法”和JSON问题

我正在教自己Kotlin和Android开发。 所以,我相信我的问题大部分是缺乏知识,但是我已经挂了这一两天了。 我认为我的问题部分是我的JSON查询,大部分是我的菜鸟。 在我下面的for循环中,我从IDE中得到以下错误:“For-Loop范围必须有一个”iterator()方法“。 这是关于’cycloneList’in:for(stormInfo in cycloneList) 我已经链接了我使用的“虚拟”JSON数据可以在这里find: https : //api.myjson.com/bins/19uurt在这个问题上保存一些空间。 问题代码 `var cycloneList = response?.body()?.currenthurricane?.stormInfo?.get(0) if (cycloneList != null) { for (stormInfo in cycloneList) { <<–Problem val newCyclone = "Name: ${cycloneList.stormName}" cycloneStrings.add(newCyclone) } }` 完整的代码 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //creates a new CycloneRetriever object from CycloneHelp.kt […]

Json给kotlin数据类

有没有现成的服务从json模型生成kotlin数据类的方式http://www.jsonschema2pojo.org/ site? 我的新项目已经超过了复杂的API响应,所以它会节省我的时间。

用翻新和moshi填充微调

我是Android开发人员(包括java或kotlin)的初学者。 我正在尝试用改造和moshi从json填充微调器,但我不知道如何将其填充到微调器中。 说实话,我不知道Json数据的返回是否正确,因为Log.d()返回不是作为dump()laravel或php的细节。 脚本在活动onCreate(请阅读脚本的评论,我把Log.d()调试结果) Log.d() val task = object : AsyncTask<Void, Void, Response<List>>() { override fun doInBackground(vararg params: Void): Response<List> { val typeAPI = RestAPI() val callResponse = typeAPI.getNews() val response = callResponse.execute() return response } override fun onPostExecute(response: Response<List>) { if (response.isSuccessful) { val news = response.body() Log.d(“test:”, news!![0].data.toString()) // method ‘java.lang.String com.example.mockie.tigaer.api.TypeDataResponse.toString()’ on […]

如何迭代通过JsonObject的属性递归?

我将字符串解析为JSON对象,我需要能够递归地迭代对象的属性。 所以我试图创建一个函数迭代通过对象的属性,如果一个属性不是一个原语,然后再次调用该函数(递归)与属性本身。 在JavaScript中,我会解决这个问题: function forEachAttribute(object) { for (let key in object) { let attribute = object[key]; if (typeof attribute === “object”) { forEachAttribute(attribute); } else { console.log(key + “: ” + attribute); } } } let myObject = { innerObject: { x: 123 }, y: 456 }; forEachAttribute(myObject); 但是我正在摆脱Javascript,并试图学习如何使用Kotlin。 所以我find了一个遍历JSON对象属性的方法 。 但我不太明白如何确定属性是否是一个原始的。 import kotlin.js.Json fun […]

jackson,用私有字段和arg构造函数反序列化没有注释的类

使用Jackson可以反序列化为一个具有私有字段和自定义参数构造函数的类,而不使用注释,也不需要修改类。 我知道在使用这个组合的时候Jackson是可能的:1)Java 8,2)用“-parameters”选项编译; 3)参数名称与JSON匹配。 但是GSON默认也是可以的,没有这些限制。 例如: public class Person { private final String firstName; private final String lastName; private final int age; public Person(String firstName, String lastName, int age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } public static void main(String[] args) throws IOException { String json = “{firstName: \”Foo\”, lastName: \”Bar\”, […]