Tag: json

通过JSON配置选择策略

我正在Java / Kotlin中实施一个学习代理。 该代理功能的一部分涉及通过大量可能的选项进行搜索。 搜索可能性空间有很多好方法,我经常改变我的想法,哪一个是最好的。 所以我决定把它作为一个战略模式来实施。 class Agent(val searchStrategy : SearchStrategy){ fun search(input : InputGraph) : Result{ return searchStrategy.search() } } interface SearchStrategy{ fun search(input : InputGraph) : Result } class FastSearch : SearchStrategy{ //implementation here } class AccurateSearch : SearchStrategy{ // implementation here } class ExperimentalSerach : SearchStrategy{ // implentation here } 最近,我决定运行一大组实验来测试各种系统参数的有效性。 这是通过一个python脚本完成的,该脚本通过运行带有不同config.json文件的编译jar作为参数来踢每个实验。 […]

Kotlin数据类到JSON与春天/杰克逊

我试图公开一些数据类作为JSON对象,但有些不工作。 我有以下数据类: data class Link( @JsonProperty("rel") @JsonView(View.Bind::class) val rel: String, @JsonProperty("method") @JsonView(View.Bind::class) val method: HttpMethod, @JsonProperty("href") @JsonView(View.Bind::class) val href: String) data class MetaData(val status: HttpStatus) { @JsonView(View.Bind::class) @JsonProperty("status_code") fun getStatusCode(): Int { return status.value() } @JsonView(View.Bind::class) @JsonProperty("status_desc") fun getStatusDesc(): String { return status.name } } data class Payload( @JsonView(View.Bind::class) @JsonProperty("payload") val payload: Any, @JsonProperty("_meta") @JsonView(View.Bind::class) […]

JSON到HashMap与使用Gson的对象

在我的Android应用程序(用Kotlin编写)中,我需要将一些JSON转换为MainObject哈希映射的字符串。 这就是JSON的样子: { "a": { "name": "A", "some_int": "2", "some_string": "string", "some_bool": false, "some_string_arr": [ "str1", "str2" ], "sub_obj_arr": [ { "obj_name": "d", "some_obj_string": "s" } ] }, "b": { "name": "B", "some_int": "4", "some_string": "string", "some_bool": false, "some_string_arr": [ "str5", "str6" ] } } 我创建了一些对象来帮助解决这个问题。 class MainObject { @SerializedName("name") val name: String? = null […]

Gson和序列化具有继承性的对象的ArrayList

我对Gson和Json很新。 我有简单的事件,我想在Gson的帮助下通过Json序列化。 注意:代码在Kotlin。 public abstract class Event() { } public class Move : Event() { var from: Point? = null var to: Point? = null } public class Fire : Event() { var damage: Int = 0 var area: ArrayList<Point> = ArrayList(0) } public class Build : Event() { var to: Point? = null var […]

嘲笑嵌套的服务器响应

我有以下Json模型: /** * Json model of room response */ open class JsonRoom(val BookingData: JsonRoomBookingData, val GeneralData: JsonRoomGeneralData) /** * Json model of room booking data */ open class JsonRoomBookingData(val BookingId: Int, val BookingStatus: Int, val RoomId: Int, val RoomName: String, val TimeFrom: Date, val TimeTo: Date, val TimeFromUtc: Date, val TimeToUtc: Date, val Isrecurrence: Boolean, […]

Nashorn,将java对象传递给javascript以JSON.stringified

我想从Kotlin传递一个数据类到JavaScript,并将其作为JSON序列化: engine.eval("""function jsFunction(pojo) { print(pojo); JSON.stringify({ "field": pojo })}""") engine.invokeFunction("jsFunction", Pojo(a="a", b="b")) 结果我会喜欢将是一个JSON与: { "field": { "a": "a", "b": "b" } } 但是结果是{} print功能打印出Pojo[a=a, b=b] ,因此至少该对象正确传递。 如果我打印的pojo类型,我得到的object 。 如果我做: engine.eval("""function jsFunction(pojo) { print(pojo); JSON.stringify({ "field": pojo.a })}""") engine.invokeFunction("jsFunction", Pojo(a="a", b="b")) 那么我得到: { "field": "a" } 但是,这样做的目的是失败的。 我想获得开箱即用的完整结构。 如果我手动将对象串行化成json,然后将它传递给js函数: engine.eval("""function jsFunction(pojoJson) { pojo = JSON.parse(pojoJson); print(pojo); […]

改造+ GSON反序列化+领域关系

最佳实践:关系+ Realm保存的JSON反序列化。 我有以下JSON: { "organizations": [{ "id": 1, "name": "Orga 1" }], "states": [{ "id": 1, "organizationId": 1, "name": "Read" }] } 这里是相应的Kotlin对象: class Organization { @SerializedName("id") @Expose val id: Long? = null @SerializedName("name") @Expose val name: String? = null } class State { @SerializedName("id") @Expose val id: Long? = null @SerializedName("organizationId") @Expose val organizationId: […]

使用gson序列化和返回不适用于泛型类型

我正在编程一个kotlin websocket,并想发送转换为json与gson的dtos。 所以我写了一个包装dto包含真正的dto和dto的一些额外的信息,就像它的类型。 这是我的包装dto class WrapperDto <T : AbstractDto> { var type = "" var action = "" var dto : T = AbstractDto() as T } 这是它可以包含的dtos之一: class Person : AbstractDto() { var firstName = "" var familyName = "" } 在这里出于测试的原因,我尝试将其转换为json然后再转换回来: val wrapperDto2 = WrapperDto<Person>() wrapperDto2.type = Person::class.simpleName!!; wrapperDto2.action = "add" val person […]

覆盖一些控制器的@JsonIgnore注释。 杰克逊。 弹簧

我只需要将照片字段仅用于直接请求到实体。 但是,当用户向所有MediaHolders对象发出请求时,仅使用photoSize序列化短信息。 我正在使用Kotlin,Jackson,Spring和Hibernate。 我试过了: 在控制器上的@JsonView。 不起作用。 JsonView不覆盖@JsonIgnore的行为。 或者我需要注释基本PersonalDomainObject类和所有控制器中的所有字段,这是不适合我。 自定义JsonFilter,但相同,它不会看到忽略字段。 而且我不能在不同的控制器上添加不同的过滤器。 也许我错过了一些东西,但我认为这是优化中的常见任务。 非常感谢您的任何建议! @JsonIgnoreProperties("createdAt", "updatedAt", "owner", "hibernateLazyInitializer", "handler") open class MediaHolder : PersonalDomainObject() { @OneToMany(cascade = arrayOf(CascadeType.PERSIST, CascadeType.REMOVE), mappedBy = "mediaHolder") @LazyCollection(LazyCollectionOption.EXTRA) var photos:MutableList<Photo> = mutableListOf() val photosSize: Int get() = photos.size }

如何防止杰克逊(德)序列化某些属性?

对于任何Kotlin类,以componentX()的格式为每个公共属性生成一个方法,所以这个类: public data class Dog(public var name: String, public var age: Double) 在Java中相当于这样的东西: public class Dog { private String name; private double age; public Dog(@NotNull String name, @NotNull double age) { // assign values } // Getters and setters for name and age // toString(), equals(), and hashCode() public String component1() { return name; } […]