问题标签 [json4s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1299 浏览

scala - 使用 json4s 使用 trait mixin 序列化案例类

我有一个案例类Game,使用json4s序列化/反序列化没有问题。

在我的应用程序中,我使用mapperdao作为我的 ORM。因为Game使用了代理 ID,所以我没有id它的构造函数的一部分。

然而,当 mapperdao 从数据库返回一个实体时,它使用一个特征提供持久对象的 id。

Game with SurrogateIntId

特征的代码是

当我尝试序列化时Game with SurrogateIntId,返回空括号,我认为这是因为 json4s 不知道如何处理附加的特征。

我需要一种gameid添加到其属性T with SurrogateIntId的序列化方法,并且几乎与对所有域对象都使用这些方法一样重要的方法是为任何对象执行此操作。

谁能帮我吗?

0 投票
2 回答
2885 浏览

scala - 使用 json4s 在 under_score 和 camelCase 格式之间进行选择

如何将带下划线的 json 映射到案例类中的 camelCase 字段?

我得到的错误:

someField 没有可用值 没有找到可以转换成 java.lang.String 的值

0 投票
4 回答
2775 浏览

json - 使用 for 表达式从可能为空的 JSON 值中提取选项

我有一个 JSON 文档,其中一些值可以为空。在 json4s 中使用 for 表达式,我怎样才能产生无,而不是什么?

FormattedID当任一字段或的PlanEstimate值为时,以下将无法产生null

例如:

0 投票
1 回答
1046 浏览

scala - 在案例类中使用 json4s 序列化 None

我想不通,假设我有一个带有选项的案例类,例如:

如果我尝试使用 Scalaltra 指南所禁止的 json4s 将其序列化为 json,则我的案例类中的任何 None 都会从输出中删除。这样下面的代码

将产生“{”id“:1}”的输出,我想要一个输出:{“id”:1,“noteA”:null,“noteB”:null}

我已经按照以下方式编写了一个 CustomSerializer:

它与默认格式化程序做同样的事情。

我认为将最后一行更改为此会起作用

但不编译。

我想知道如何匹配 noteA 和 noteB 字段中的 Some/None 并在其中任何一个成员为 None 的情况下返回 JNull。

谢谢

0 投票
1 回答
2198 浏览

scala - [json4s]:提取不同对象的数组

我正在使用 facebook graph API,响应看起来类似于:

例如,我设法from通过

但我担心,如果我使用这种技术,我将需要多次传递 Json 以提取我需要的所有值,这可能会导致性能不佳。

我怎样才能将这些字段从不相似的对象数组中提取到案例类中?

我尝试了以下方法case classes

这总是导致一个空列表,有没有办法找回一个Data包含我感兴趣的某些类的列表的类?(例如顶层 idfromwith_tags

0 投票
2 回答
5171 浏览

scala - @JsonIgnore 使用 Jackon 和 Json4s 序列化 Scala 案例类属性

我试图阻止 Scala 的属性之一case class被序列化。我已经尝试用通常的方式注释有问题的属性,@JsonIgnore并且我还尝试@JsonIgnoreProperties(Array("property_name"))case class. 两者似乎都没有达到我想要的。

这是一个小例子:

0 投票
1 回答
7393 浏览

scala - Extracting polymorphic types in json4s

I am using json4s to work with JSON objects in my Scala code. I want to convert JSON data to an internal representation. The following learning test illustrates my problem:

Suppose there is a JSON object which has a list of Animals. Animal is an abstract type, and hence cannot be instantiated. Instead, I want to parse the JSON structure to return either Dog or Bird objects. They have a different signature:

Because their signature is distinct, they can be identified without having a class Tag in the JSON object. (To be precise, the JSON structure I receive does not provide those tags).

I tried to serialize a list of Animal objects (see the code). The result is: Ser: {"animals":[{"jsonClass":"Dog","name":"pluto"},{"jsonClass":"Bird","canFly":true}]}

As you can see, when serializing, json4s adds the class-tag jsonClass.

How can I deserialize a JSON object that does not provide such a tag? Is it possible to achieve this by extending TypeHints?

I also found a similar question: [json4s]:Extracting Array of different objects with a solution that somehow uses generics instead of subclassing. However, if I understand correctly, this solution does not allow to simply pass the json object and have an internal representation. Instead I would need to select the form that is not None (while checking all possible Types in the inheritance hiearchy. This is a bit tedious, since I have multiple Polymorphic classes at different depths in the JSON structure.

0 投票
2 回答
1969 浏览

json - json4s 无法序列化具有 mixin 特征的案例类

为什么这不起作用?

这将打印一个空的 JSON 对象

而如果我删除“with Greet”,我会得到(正确的)结果:

0 投票
1 回答
1992 浏览

json - 使用json4s在scala中提取递归数据结构时遇到问题

我有一个 json 格式,它由 map -> map -> ... -> int 组成,用于每个键的任意数量的映射。键总是字符串,叶子类型总是整数。地图结构的深度因地图中的每个键而异。例如,键“A”可以是 Map[String, Int] 类型,而键“B”可以是 Map[String, Map[String, Int]] 类型。我知道我可以成功地将这种格式解析为 Map[String, Any],但我试图保留这些类型以使这些结构在以后的代码中更容易合并。

我似乎无法以不会在 json4s 提取中引发错误的方式定义我的嵌套结构。我不太确定问题出在我的结构定义中,还是我没有正确提取 json。

这是代码

这是总是出现的错误

我是否需要添加另一个扩展 NestedMap 的值?我完全错了吗?任何帮助深表感谢。

0 投票
3 回答
804 浏览

json - 带有额外数据的 json4s 对象提取

我正在使用带有 json4s 的喷雾,并且我有下面的实现来处理更新对象的 put 请求......我的问题是,我首先从 json 中提取 SomeObject 的一个实例,但它是一个 RESTful api,我希望在 URL 中指定 ID。因此,我必须以某种方式创建另一个使用 ID 索引的 SomeObject 实例……为此,我使用了像 SomeObject(id: Long, obj: SomeObject) 这样的构造函数。它工作得很好,但实现起来很丑陋,而且感觉效率低下。我该怎么做才能以某种方式将 ID 粘贴在那里,以便我只创建 SomeObject 的一个实例?