【发布时间】:2018-04-01 11:18:36
【问题描述】:
我在Convert an object to json, and json to object 找到了这个示例,用于在传递类型的同时将字符串反序列化为 JSON,反之亦然。
/// Object to Json
let internal json<'t> (myObj:'t) =
use ms = new MemoryStream()
(new DataContractJsonSerializer(typeof<'t>)).WriteObject(ms, myObj)
Encoding.Default.GetString(ms.ToArray())
/// Object from Json
let internal unjson<'t> (jsonString:string) : 't =
use ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(jsonString))
let obj = (new DataContractJsonSerializer(typeof<'t>)).ReadObject(ms)
obj :?> 't
上下文:
对于文档类型
[<DataContract>]
type Document = {
[<field: DataMemberAttribute(Name="name")>]
Name: string
[<field: DataMemberAttribute(Name="version")>]
Version: string
}
JSON
let str = """{"name: "test"; version="97234982734"}"""
问题
如何使用我的示例调用json 和unjson 函数?
为什么将函数指定为内部函数?
【问题讨论】:
标签: generics asp.net-core f# deserialization json-deserialization