我认为这个标题是错误的,但不能创建一个标题,反映出我想要实现的目标。
我正在编写一个调用服务并将数据作为JSON字符串检索的函数。该函数用JSON type provider解析字符串。在某些条件下,我想修改该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对象比给定的平面示例更复杂,并且包含深层次结构。
答案 0 :(得分:6)
是的,你需要创建一个新对象,改变你想要的位数,然后使用现有对象的值。我们前后为XML和JSON类型提供程序添加了写API。您会注意到代表您的JSON的类型具有构造函数。您可以在this link
的底部看到使用此示例