您可以
JContainer.Merge(Object,JsonMergeSettings)用来将一个合并
JObject到另一个。请注意,可以
JsonMergeSettings.MergeArrayHandling控制数组的合并方式。从
MergeArrayHandlingEnumeration文档中,可能的合并选项是:
Concat 0 Concatenate arrays. Union 1 Union arrays, skipping items that already exist. Replace 2 Replace all array items. Merge 3 Merge array items together, matched by index.
因此,使用合并
MergeArrayHandling.Concat如下,其中
allPages和
pageOne均为类型
JContainer(或子类,例如
JObject):
JContainer allPages = null;var settings = new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Concat };for (int page = 0; page <= recCount; page += 2000){ //Get data var pageOne = (JContainer)getJsonData(page); if (allPages == null) allPages = pageOne; else allPages.Merge(pageOne, settings);}return allPages;给出:
{ "data": [ { "ID": "53a1862000404a304942546b35519ba3", "name": "Private Approval Process: Draft document CPL", "objCode": "ARVPTH" }, { "ID": "53a1838200401324eb1ec66562e9d77d", "name": "Private Approval Process: Draft document CPL", "objCode": "ARVPTH" } ]}合并使用时
Replace给出:
{ "data": [ { "ID": "53a1838200401324eb1ec66562e9d77d", "name": "Private Approval Process: Draft document CPL", "objCode": "ARVPTH" } ]}如果您的变量是类型
JToken,则需要将其强制转换为
JContainer。(不是容器的JSON原语不能合并。)
JsonMergeSettings.MergeNullValueHandling
null根据需要控制是合并还是忽略值。



