我觉得这个标题是错误的,但是无法创造一个反映我想要实现的抽象标题。
我正在编写一个函数,它调用服务并检索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对象比给出的平面示例复杂得多,并包含深层次结构。
jsonResponse
的类型是记录,你可以这样做:{ jsonRespose with Property3 = "new value" }
。但似乎不起作用。 - svick