in src/Common/Utilities/JsonUtilities.cs [133:167]
public static string Patch(string originalJsonString, string patchJsonString)
{
if (string.IsNullOrWhiteSpace(originalJsonString))
{
return patchJsonString;
}
else if (string.IsNullOrWhiteSpace(patchJsonString))
{
return originalJsonString;
}
JToken originalJson = JToken.Parse(originalJsonString);
JToken patchJson = JToken.Parse(patchJsonString);
if (originalJson != null && originalJson.Type == JTokenType.Object &&
patchJson != null && patchJson.Type == JTokenType.Object)
{
PatchJObject(originalJson as JObject, patchJson as JObject);
}
else if (originalJson != null && originalJson.Type == JTokenType.Array &&
patchJson != null && patchJson.Type == JTokenType.Array)
{
originalJson = patchJson;
}
else if (originalJson != null && patchJson != null && originalJson.Type == patchJson.Type)
{
originalJson = patchJson;
}
else
{
throw new ArgumentException(string.Format(Resources.UnableToPatchJson, originalJson, patchJson));
}
return originalJson.ToString(Formatting.None);
}