Посты, которые я видел, поменялись местами, но мне нужно создать строку JSON из объекта. Я новичок в Kotlin, но в JS я в основном ищу stringify
.
Например:
JSON.stringify({foo: 'bar'})
Это то, что я хочу.
Я создал такой объект (который, если это не так, не нужнобыть построенным таким образом, я просто пытаюсь понять это)
val factory = JsonFactory()
val generator = factory.createGenerator(output, JsonEncoding.UTF8)
generator.writeStartObject()
generator.writeNumberField("statusCode", 200)
generator.writeObjectFieldStart("body") // The value inside specifically needs to be a JSON string!
generator.writeStringField("userId", user.id.toString())
generator.writeStringField("amount", user.amount.toString())
generator.writeStringField("percent", user.percent.toString())
generator.writeEndObject()
generator.writeEndObject()
generator.close()
Это создаст объект как:
{"statusCode": 200, body: {userId: ..., amount: ..., percent: ...}}
Однако, это не будет работать (работа сLambda + API Gateway), а тело должно быть строковым блобом JSON, например:
{"statusCode": 200, body: "{\"userId\": ..., \"amount:\" ..., \"percent:\" ...}"}
Я просто не уверен, как это сделать. В настоящее время (так что я могу заставить что-то работать), я просто конкатюрирую в stringField вроде:
generator.writeStringField("body", "{" +
, который очень груб и сложен в управлении, поэтому я хотел бы сделать это "правильно"У меня такое чувство, что есть простой способ сделать это, но я не могу его найти.