我有一个服务使用者,他希望我的服务生成以行分隔的 JSONL。如何修改 Jackson 解析器或提供自定义序列化程序,以便将重新调整的对象数组序列化为 JSONL 而不是 JSON。
例如下面的代码
import java.util.Arrays;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class JsonlServiceApplication {
public static void main(String[] args) {
SpringApplication.run(JsonlServiceApplication.class, args);
}
@GetMapping("jsonl")
private ResponseEntity<?> getJsonl(){
Pair<String, String> p1 = Pair.of("foo", "baa");
Pair<String, Integer> p2 = Pair.of("key", 10);
return new ResponseEntity(Arrays.asList(p1, p2), HttpStatus.OK);
}
}
将产生这个 JSON:
[
{
"foo": "baa"
},
{
"key": 10
}
]
但消费者希望:
{"foo": "baa"}
{"key": 10}