- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定以下枚举
...
object MyEnum extends Enumeration {
type MyEnum = Value
val Val1 = Value("val1")
val Val2 = Value("val2")
val Val3 = Value("val3")
}
import MyEnum._
...和下面的 map
...
val m = Map(
val1 -> "one",
val2 -> "two",
val3 -> "three"
)
...我需要将 m
转换为 JSON:
import play.api.libs.json._
val js = Json.toJson(m)
最后一条语句无法编译,因为编译器没有找到 scala.collection.immutable.Map[MyEnum.Value,String]
类型的 Json 序列化程序。
问题:由于 Play 确实为 scala.collection.immutable.Map[String,String]
类型提供了序列化器,而我的枚举实际上包含字符串,有没有办法重用默认的 JSON 序列化器?
最佳答案
The built-in Reads
objects不要为键中参数化的 Map
定义 Reads
。你可以这样做:
implicit def looserMapWrites[A <: AnyRef, B : Writes]: Writes[Map[A, B]] = Writes { o =>
Json.toJson(o.map { case (key, value) =>
key.toString -> value
})(Writes.mapWrites)
}
根据您的上述值(value)观,您将获得:
scala> Json.toJson(m)(looserMapWrites)
res1: play.api.libs.json.JsValue = {"val1":"one","val2":"two","val3":"three"}
如果你愿意,你可以收紧 A
的边界,使其不适用于任何 AnyRef
。
关于scala - 如何将 Map[CustomType, String] 序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25897921/
我正在尝试创建一个在运行时设置的自定义类型列表。这怎么可能? 这是我的代码: Type customType = typeof(string); // or someOtherVariable.Get
我正在尝试使用 Enumerable.ToList()在 PowerShell 中。显然,要做到这一点,我必须明确地将对象转换为 IEnumerable ,但我无法做到这一点。看来我不能正确写IEnu
我需要返回按时间顺序排列的警报列表。下面的方法 1 执行此操作。 我还需要获取某种警报类型的警报,如果 AlertTypeID = {1,2,3,6,8,9,x},则按 CreateDate 返回这些
我有一个返回列表的 WCF 服务。 [DataContract] public class EmployeesVM { [DataMember] public int ID { get
我有一个包含自定义类型的 IList。该自定义类型的属性之一称为 ID。我如何在不使用 for 循环的情况下转换它?该数组不应为 CustomType,但如果是 ID 类型,则为 int。 谢谢! 最
我正在使用一个名为 LanguageExt 的库.这个库提供了一些工具来处理 C# 代码中的函数式编程。我还使用 FluentNHibernate 将我的域类映射到我的数据库。 当属性可为空时,我想使
尝试使用 Joda DateTimes 生成 JooQ POJO,但遇到了一些问题。 POJO 使用默认的 java.sql.TimeStamp 值而不是 DateTimes 从生成器中出来。 下面的
我是 C# 新手。我有一个 Persons 类和一个继承自 Persons 类的 User 类。在我的控制台中,我在一个数组中输入了一个用户。然后我可以通过仅输入用户 ID 向用户数组中的用户添加注释
我有一个 WCF 服务,它将一些自定义对象返回到桌面客户端应用程序。这两个项目共享相同的 ObjectLibrary.dll,但是当 WCF 服务器返回这些对象时,它正在返回 ClientApplic
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎偏离主题,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或 include a mini
我是 angularJs2 的新手。我创建了以下服务: import { Injectable, OnInit } from '@angular/core'; import { customType
给定以下枚举... object MyEnum extends Enumeration { type MyEnum = Value val Val1 = Value("val1") val
我正在尝试调用一个异步函数并指定一个自定义类型(我们称之为“CustomType”)。我在该类型中指定了一些随机属性,只是为了理解它是来自数据库的东西(内容可能会根据检索到的项目而有所不同,对于存储在
我正在开发一个 WCF 应用程序,我的一项服务需要使用用 Java 开发的第 3 方 Web 服务。第 3 方服务由政府提供,几乎不可能访问其代码/要求更改。 我从它的 wsdl 中将它添加为服务引用
我是学Android开发的,看到很多话题都说LiveData不推荐用了。我的意思是它不是最新的,我们应该改用 Flows。 我正在尝试使用 Flows 从 ROOM 数据库获取数据,然后将它们转换为
我有实体 Super 的 SuperType 表单。 在这个表单中,我有一个 collection 字段为 ChildType 实体 Child 的表单类型 super 类型类: public fun
我正在尝试在客户端和服务之间共享一个大型字典/ map 。我需要能够双向设置值,并从字典/ map 中删除值,而无需每次都来回传递整个 map 。 我知道我可以使用以下方法创建 map : map c
我的数据网格: 以下列只显示标题: 我知道这可能是错误的,但现在我的问题是如何显示它? itemssource是IEnu
我需要以下方面的帮助 - 首先,这是我收到的错误: SEVERE: A message body writer for Java class java.util.ArrayList, and Java
我无法将 google-api-services-admin-directory Organization 转换为 JSONArray,因为会引发以下异常: Exception message : M
我是一名优秀的程序员,十分优秀!