So I have been working on a WCF web service using latest Web API assembly and I am loving the JsonValue object.
What I want to do is accept JSON which is bound to a JsonValue object, then convert that JsonValue object to a equivalent XML representation that can be passed into a stored procedure for processing. This eliminates the need to create objects to bind the JsonValue to and this keeps things fluid.
Then I would like to be able to select data out of the database in XML form and then convert that to JsonValue to be returned to the client.
I have been able to do convert the JsonValue to a string representation of XML by this extension method:
// Convert JsonValue to XML string
public static string ToXmlString(this JsonValue instance) {
using (var ms = new MemoryStream()) {
using (var xdw = XmlDictionaryWriter.CreateTextWriter(ms)) {
instance.Save(xdw);
xdw.Flush();
return Encoding.UTF8.GetString(ms.ToArray());
}
}
}
Is there a better way to do this? This method is fine but I was just wondering.
I have also been able convert XML string value back to a JsonValue using Json.NET library to convert the XML string to a JSON string and then load the string into a JsonValue object like so:
// Return JSON representation of XML
return JsonValue.Parse(JsonConvert.SerializeXNode(xmlElement, Formatting.None, true));
This approach is fine but I would like to not have to be dependent on the Json.NET library since I am including it solely for this one method. Is there a way to do this without using the Json.NET library?
Thanks in advance for any help!
Daniel