问题标签 [lift-json]

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 回答
651 浏览

scala - MongoDB ObjectID 作为 JSON 使用 lift-json

我正在为一些 REST API 使用Bowler框架(内部使用 lift-json 模块进行繁重的工作)并具有以下案例类:

当我将此案例对象返回给客户端时,我需要包含 _id 字段的值。但是,_id 列在 Json 输出中作为空列表返回,而不是其实际值。

任何有关如何解决此问题的指针将不胜感激。

更新:我尝试使用自定义序列化程序,但由于某种原因它没有被调用!

0 投票
2 回答
1426 浏览

parsing - 在 Scala 中使用 lift-json 从解析的 JSON 中渲染 JSON

这可能是一个简单的问题,而我的困难可能是由于我对 Scala 的陌生(它已经迅速成为我最喜欢的语言)。

基本上我有一些看起来像这样的 JSON:

现在,我已将此 JSON 解析到可以从标头(往返)中提取数据并可以查看包中的各个消息的程度。目前我正在使用这个:

这给了我:

但是我想在那个循环中做的是获取每个 Map 并将其转换回 JSON 即:

我已经尝试了 render(m) 和其他各种半随机的东西来尝试让它工作,但到目前为止还没有骰子。我最接近的给了我这个错误:

谁能指出我正确的方向?

提前致谢!

0 投票
1 回答
230 浏览

java - 使用 lift-json 实例化基于 json 和元数据的类型

我想反序列化已使用 Lift-json 序列化的 Scala 案例类。我遇到的问题是,我不知道如何调用extractOpt[A]下面的通用方法方法:

的类型[A]将取决于元数据,例如类名,[A]但对于我来说,我无法弄清楚如何使用反射进行调用。在 c# 中,我只能为extractOpt[A]使用反射的调用设置泛型类型。我担心我的问题与 Java 类型擦除有关。

我将有很多案例类,所以我真的想避免必须从 {metadata} -> classOf[] 创建某种手工制作的地图。我可以完全控制与之关联的元数据someString

如果它有助于理解我为什么会遇到这个问题,我正在实现事件溯源,并且我所有的 [A] 类型都将是持久事件。有什么想法我能做什么?

0 投票
5 回答
2397 浏览

scala - 使用 lift-json 在 scala 中验证 json

在尝试使用 lift-json 编组到案例类之前,我想验证 json 是否包含键/值列表。数据可能是嵌套的。

例如:

有哪些方法可以验证此 JSON 是否包含“姓名”、“年龄”和“地址\街道”的值?假设所有其他字段都是可选的。

抱歉,如果我遗漏了一些明显的东西,但我怀疑以前已经解决了这样的问题。

顺便说一句,有人尝试过Orderly吗? https://github.com/nparry/orderly4jvm

0 投票
1 回答
309 浏览

scala - Lift JSON 中的非递归提取以便于理解

我正在使用 Lift JSON 的 for-comprehensions 来解析一些 JSON。JSON 是递归的,因此例如该字段id存在于每个级别。这是一个例子:

以下代码

产生List(1, 2, 3). 我期待它的产品List(1)

在我的程序中,这会导致二次计算,尽管我只需要线性。

是否可以使用 for-comprehensions 仅匹配顶级id字段?

0 投票
1 回答
171 浏览

scala - 播放 Diff 所需的框架文件缺失

尝试将lift-json库与scala play一起使用时出现此错误:“无法编译文件。引发的错误是:加载Diff时出错,Diff所需的类文件丢失。包scala的引用类型Serializable是指不存在的符号。”

我在 dependencies.yml 文件中添加了“-net.liftweb -> lift-json 2.9.0-1-2.4”。我不确定是什么导致了这个错误。

0 投票
2 回答
940 浏览

json - 使用 lift-json 进行向量反序列化

如何使用 lift-json 将 json 数组反序列化为 scala 向量?

例如:

结果是:

好的。但是当我尝试反序列化这个字符串时

我得到一个例外:

net.liftweb.json.MappingException:解析的 JSON 值与类构造函数不匹配 args=List(Bar1(1), Bar2(5), Bar1(1)) arg types=scala.collection.immutable.$colon$colon 构造函数=public test.Foo(scala.collection.immutable.Vector)

这意味着与 Scala 列表相关联的 json 数组,而不是类 Foo 中定义的向量类型。我知道有办法通过扩展 net.liftweb.json.Serializer 来创建自定义序列化程序并将其包含到格式值中。但是我怎样才能恢复存储在 Vector 中的对象类型。我想得到这样的反序列化结果:

Foo(向量(Bar1(1), Bar2(5), Bar1(1)))

0 投票
2 回答
1157 浏览

scala - 使用 lift-json 序列化没有字符串作为键的映射

似乎 lift-json 仅限于以字符串为键的地图。

绕过此限制的最佳方法是什么?

0 投票
1 回答
221 浏览

json - 序列化 map[A,B] 与 lift-json 知道 A<->String

我想用 Lift-json 序列化一个 HashMap[Coord,Unite] 类型的 HashMap。这些类型特定于我的项目,但有 Coord -> String 和 toString 函数,我可以从 String 返回我的 Coord(即使它没有在这里编码,但那不相关)。所以我想我可以让 lift-json 序列化 Map[String,Coord] 但是在这里 serialize(format)(y) 当我希望它使用适用于的序列化函数时尝试应用相同的函数(以递归方式)地图[字符串,坐标]。我不能在 Serializer 之外进行转换的原因是因为这个 HashMap 是更大案例类的一部分,所以我需要 lift-json 来知道如何序列化和反序列化它。

我可以重写 Map[String,Unite] 的序列化和反序列化,但这将是很多无用的代码,因为我不明白 lift-json 是如何工作的。

0 投票
1 回答
590 浏览

json - 在Scala中使用lift-json反序列化时忽略字段

我如何将这样的数据反序列化为这样案例类:

(也就是说,案例类的构造函数参数少于 JSON 的值)

我尝试创建一个 FieldSerializer 来做到这一点,但我只能弄清楚如何在序列化时忽略字段,而不是反序列化。