[英]Changing an immutable object F#
我認為這個標題是錯誤的,但不能創建一個標題,從抽象的角度來反映我想要實現的目標。
我正在編寫一個調用服務並將數據作為JSON字符串檢索的函數。 該函數使用JSON類型提供程序解析字符串。 在某些條件下,我想修改該JSON對象的屬性,然后返回修改對象的字符串。 因此,如果來自呼叫的響應是
{"property1" : "value1","property2" : "value2", "property3": "value3" }
我想將property3更改為新值,然后返回JSON字符串。
如果JsonProvider是可變的,這將是一個練習,如:
type JsonResponse =
JsonProvider<""" {"property1" : "value1",
"property2" : "value2",
"property3": "value3" } """>
let jsonResponse = JsonResponse.Parse(response)
jsonResponse.Property3 <- "new value"
jsonResponse.ToString()
但是,這不起作用,因為無法設置屬性。 我想確定解決這個問題的最佳方法。 我很樂意根據原始響應初始化一個新對象,但修改了參數,但我不確定是否有一種簡單的方法可以實現這一點。
作為參考,JSON對象比給定的平面示例更復雜,並且包含深層次結構。
是的,您需要創建一個新對象,更改所需的位數,然后使用現有對象的值。 我們前后為XML和JSON類型提供程序添加了寫API。 您會注意到代表您的JSON的類型具有構造函數。 您可以在此鏈接的底部看到此示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.