gpt4 book ai didi

json - F# 关键字是 Firebase JSON 中的一个字段 - 解决方法吗?

转载 作者:行者123 更新时间:2023-12-02 09:14:30 27 4
gpt4 key购买 nike

我在 F# 中定义了以下记录:

type ListingContent = 
{ from : string
landlord_id : string
listing_id : string
location : string
name : string
pic_1_url : string
pic_2_url : string
pic_3_url : string
pic_4_url : string
pic_5_url : string
messages : Map<string, Map<string,MessageContent>>
postcode : string
price_per_night : string
to_date : string;
}

我正在使用以下代码:

let listings_json = JsonConvert.DeserializeObject<Types.ListingContent>(html)

解析以下 JSON:

    {  
"from":"19/01/2018",
"landlord_id":"YMM45tgFFvYB7rx9PhC2TE5eW6D2",
"listing_id":"-L0pJmU9yj4hAocHjnrB",
"location":"Edinburgh",
"name":"dan",
"pic_1_url":"https://firebasestorage.googleapis.com/v0/b/....",
"pic_2_url":"https://firebasestorage.googleapis.com/v0/b/....",
"pic_3_url":"https://firebasestorage.googleapis.com/v0/b/....",
"pic_4_url":"https://firebasestorage.googleapis.com/v0/b/....",
"pic_5_url":"https://firebasestorage.googleapis.com/v0/b/....",
"postcode":"....",
"price_per_night":"£32",
"to":"19/01/2019"
}

这可以很好地解析除 to 之外的所有内容。字段,因为我正在使用 to_date在我的记录中,它解析为 null ... toF# 中的关键字因此我不能在我的记录定义中使用它。此时我无法真正更改数据库中的 JSON。有没有解决这个问题的方法?

最佳答案

您可以通过将关键字括在双反引号中来使用关键字作为标识符:

``to``: string

反引号本身不会成为标识符的一部分,只会成为其中的内容。这样,JSON 库将看到一个名为“to”的字段,您将能够从 F# 中将其引用为 listingContent.``to``

此技巧也适用于带有空格和其他非标识符字符的标识符:

let ``some identifier`` = 42
let ``007`` = "Bond"

或者,您可以通过 JsonProperty attribute 告诉 JSON.NET 本身为该属性使用不同的名称。 :

[<JsonProperty "to">] to_date : string

关于json - F# 关键字是 Firebase JSON 中的一个字段 - 解决方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48488776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com