问题标签 [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 回答
932 浏览

android - 找不到类的 ScalaSig - json4s with scala + proguard for an android app

我有一个非常简单的案例类(Baz),我想使用 json4s-native 将其序列化为 JSON。在使用 Proguard 制作安卓 apk 时,我似乎根本无法让它工作。

序列化时,会出现以下异常:

我的 proguard 配置包含:

在针对实际代码运行测试用例时,事情会按预期工作,但是在 proguard 步骤之后,总是会出现这个问题。

有什么帮助吗?

干杯。

0 投票
1 回答
1440 浏览

arrays - 如何在json4s中生成空数组?

我有 2 位 scala 代码使用 json4s dsl 来生成 json 内容

首先,我得到了我的期望:

但是对于空列表,我没有得到数组。相反,我得到

注意在第一种情况下 menus 是 aJArray(List(Jobject而在第二种情况下是 aJObject(List()

这是设计使然吗?这目前用于测试,但我需要了解发生了什么,因为我的真实世界代码可能在许多地方都有空列表,并且接收者期待一个数组。

0 投票
2 回答
593 浏览

json - Json4s 日期到 unixtimestamp

如何为 Json4s 创建包装器?默认 json4s 格式化程序日期全部转换为 SimpleDateFormat。我想将所有日期字段转换为 unixtime 格式。

0 投票
2 回答
16508 浏览

scala - 使用 json4s 将 [String,Any] 映射到压缩 json 字符串

我目前正在从不同的数据源中提取一些指标并将它们存储在类型的映射中,Map[String,Any]其中键对应于指标名称,值对应于指标值。我需要它或多或少是通用的,这意味着值类型可以是原始类型或原始类型列表。

我想将此映射序列化为 JSON 格式的字符串,为此我正在使用json4s库。问题是这似乎不可能,我看不到可能的解决方案。我希望以下内容可以开箱即用:)

浏览我见过的源代码json4s提供了隐式转换,以便将原始类型转换为JValue's 并转换Traversable[A]/Map[String,A]/Option[A]JValue's(在可用的隐式转换 from Ato的限制下JValue,我理解它实际上意味着A是原始类型)。该~运算符提供了一种从 ' 中构造JObject' 的好方法JField,这只是 . 的类型别名(String, JValue)

在这种情况下,映射值类型为Any,因此不会发生隐式转换,因此编译器会抛出以下错误:

我想要完成的事情有解决方案吗?

0 投票
1 回答
2724 浏览

json - Json4s 在序列化期间忽略 None 字段(而不是使用'null')

我有一个通用的 json 序列化方法,它使用json4s. 不幸的是,如果值为None. 我的目标是让None字段用null值表示。我尝试通过为 None 添加自定义序列化程序,但它仍然无法正常工作。

上述代码的结果:

我尝试了这个链接和其他一些链接,但没有解决案例类的问题

0 投票
3 回答
2488 浏览

scala - `JObject(rec) <- someJArray` 在理解中意味着什么

我正在学习Json4s库。

我有一个这样的json片段:

而且,我有 Scala 代码,它将 json 字符串转换为地图列表,如下所示:

records到屏幕的输出给出了这个:

列表(地图(名称 -> John Derp,地址 -> Jem Street 21),地图(名称 -> Scala Jo,地址 -> 在我的甜蜜梦中))

我想了解for循环内的线条是什么意思。例如,这一行的含义是什么:

我知道json \ "records"产生一个JArray对象,但为什么它JObject(rec)在左边被提取<-JObject(rec)语法的含义是什么?rec变量从何而来?是否意味着从输入JObject(rec)实例化一个新JObject类?rec

顺便说一句,我有 Java 编程背景,所以如果你能告诉我上面循环的 Java 等效代码也会很有帮助。

0 投票
1 回答
8044 浏览

json - 在 Scala 中解析和操作 json

我有这个从我正在使用的 REST 服务返回的 JSON。

目前我正在寻找一种用 json4s 解析它的方法,迭代“字段”数组,以便能够更改其中不同对象的属性“值”。到目前为止,我已经尝试了一些 json 库并最终得到了json4s

Json4s 允许我将 json 解析为 JObject,我可以尝试从中提取“字段”数组。

我已经成功地提取了这样的地图,并再次将其呈现回 JSON。但是我想不通的是,如何遍历这些字段并更改其中的属性“值”?

我已经阅读了 json4s 文档,但我对 Scala 和它的语法都很陌生,所以我遇到了困难。

问题变成了,如何遍历解析的 JSON 结果来更改属性“值”?

这是我想要实现的流程。

  1. 将 JSON 解析为可迭代对象
  2. 循环并查找某些“名称”并将其值(例如 fstname)从 John 更改为其他名称。
  3. 将其解析回 JSON,因此我可以将带有更新值的新 JSON 发送回来。

我不知道这是否是最好的方法,我真的很感激输入,也许有更简单的方法来做到这一点。

在此先感谢,最好的问候,

斯蒂芬·康诺

0 投票
1 回答
5324 浏览

scala - 带有json4s的JArray中的TransformField

我正在尝试使用 Scala,特别是json4s库以操作一些 json。我很难使用 Scala 和json4s的语法,我想问问你们。

我有这个 json,我需要更新一些字段,并将其完整地发送回服务。json 看起来像这样:

我正在使用json4s将其解析为 JArray,如下所示:

这给了我一个包含所有字段的 JArray:(非常抱歉格式化)

我现在面临的问题是:

如何找到每个字段属性“名称”,并将其更改(转换)为新值?

例如(我知道这很可能不是 Scala 中的工作方式,但你会明白的)

0 投票
1 回答
4497 浏览

json - 用 json4s.replace 替换 Json AST 中的对象

我有这个 json,我一直在用json4s解析和替换字段,json 看起来像这样:

第二个数组称为“字段”,这是我想用实际字符串值替换空字符串的数组。我一直在使用json4s transformField 函数执行此操作,首先将 json 解析为 JObject,然后使用新值转换 JObject。

现在我得到了原始解析的 json“a”,并且得到了新的 JArray,其中包含“v”中的更新字段。我需要做的最后一件事是将新值合并到原始 JObject“a”中。我用替换试过这个,没有运气。

问题:

  1. 如何让 replace() 替换我第二次出现的字段数组?
  2. 有一个更好的方法吗?建议非常感谢。

这是完整的代码的可运行版本以及 json 的示例打印:http: //pastebin.com/e0xmxqFF

0 投票
1 回答
325 浏览

json - 反序列化没有名称的json

我是使用 json 的 Scala na json4s。为了反序列化,我调用了 org.json4s.native.JsonMethods.parse 和 ExtractableJsonAstNode.extract 方法。这是 json 文件的一部分:

它包含没有名称的属性。案例类中的字段名称应该是什么才能成功反序列化属性?