Json 无法使用Kotlin将正文发布到Spark REST API

Json 无法使用Kotlin将正文发布到Spark REST API,json,rest,gradle,kotlin,spark-java,Json,Rest,Gradle,Kotlin,Spark Java,我正试图跟进,我正在努力将数据发布到JSON主体上 我想在正文中发布数据,如下所示: curl -H "Content-Type: application/json" -X POST -d '{"token" : "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vdHJ1c3R5YXBwLmNvbS8iLCJzdWIiOiJ1c2Vycy8xMzAwODE5MzgwIiwiZXhwIjoxNDg5OTgwNTI2fQ.5ZJG9GyhG-OCXg0C510MBF

我正试图跟进,我正在努力将数据发布到JSON主体上

我想在正文中发布数据,如下所示:

curl -H "Content-Type: application/json" -X POST -d '{"token" : "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vdHJ1c3R5YXBwLmNvbS8iLCJzdWIiOiJ1c2Vycy8xMzAwODE5MzgwIiwiZXhwIjoxNDg5OTgwNTI2fQ.5ZJG9GyhG-OCXg0C510MBFs9EQHdE909s4hpNxnM6LU"}' http://localhost:4567/tokens
但是,这会在我的Kotlin文件第20行中得到一个空值

/**
 * REST API for getting tokens
 * Created by juanma on 15/3/17.
 */

import spark.Spark.get
import spark.Spark.post
import spark.Spark.*
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper

fun main(args: Array<String>) {
    get("/hello") { req, res -> "Hello World" }
    path("/tokens") {
        get("") { req, res ->
            createToken()
        }
        // TODO check this instead, so I can get the params from the body
        // https://stackoverflow.com/a/30113863/3923525
        post("") { req, res ->
            val token = req.queryParams("token")
            val verifiedToken = retrieveToken(token)
            res.type("application/json")
            jacksonObjectMapper().writeValueAsString(verifiedToken)
        }
    }
}

fun createToken(): String {
    val jwtProvider: JwtProvider = JwtProvider()
    val jwt: String = jwtProvider.createJwt()
    return jwt
}

fun retrieveToken(jwt: String): String {
    val jwtProvider: JwtProvider = JwtProvider()
    return jwtProvider.verifyJwt(jwt)
}
我正在使用Gradle,下面是我的
build.Gradle
,以防万一:

group 'com.github.juanmougan'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.1.1'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.1"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.1"
    compile group: 'com.sparkjava', name: 'spark-core', version: '2.5.5'
    compile 'io.jsonwebtoken:jjwt:0.7.0'
    compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: '2.8.7'
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}
我遇到了一个,它使用Spark和Java并手动解析身体。所以我尝试在一个全新的Spark/Maven/Java项目中使用它,但它甚至无法编译。在这一行

JSONObject json = JSONObject.fromObject(element);
无法导入类
JSONObject
。所以我想这是一个松散的结局

任何想法都将不胜感激。

提前感谢
JSONObject
位于
org.json:json
中,您可能需要添加该包


如果你想改用Jackson,可以看看例如(要真正使用Jackson,你至少需要
com.fasterxml.Jackson.core:Jackson-core
,还有
com.fasterxml.Jackson.core:Jackson-databind
)。

谢谢你的回答,我想我发布的示例不起作用,因为它使用的代码有点不同。我会试着用杰克逊
JSONObject json = JSONObject.fromObject(element);