using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
public static partial class JsonExtensions
public static JToken ToJToken(this XmlNode node, bool omitRootObject = false, string deserializeRootElementName = null, bool writeArrayAttribute = false) =>
JToken.FromObject(node, JsonSerializer.CreateDefault(
new JsonSerializerSettings { Converters = { new XmlNodeConverter { OmitRootObject = omitRootObject, DeserializeRootElementName = deserializeRootElementName, WriteArrayAttribute = writeArrayAttribute } } }
public static void Test()
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(GetXml());
var root = (JObject)xmldoc.DocumentElement.ToJToken(omitRootObject : true);
var array = root.PropertyValues().SingleOrDefault();
string js = array.ToString();
static string GetXml() => @"<?xml version=""1.0"" encoding=""UTF-8""?>
<User_Email>cynthia48@example.com</User_Email>
<User_Name>Louis Hebert</User_Name>
<User_State>South Dakota</User_State>
<User_Email>brian52@example.com</User_Email>
<User_Name>David Lewis</User_Name>
<User_State>Connecticut</User_State>
public static partial class JsonExtensions
public static JToken ToJToken(this XNode node, bool omitRootObject = false, string deserializeRootElementName = null, bool writeArrayAttribute = false) =>
JToken.FromObject(node, JsonSerializer.CreateDefault(
new JsonSerializerSettings { Converters = { new XmlNodeConverter { OmitRootObject = omitRootObject, DeserializeRootElementName = deserializeRootElementName, WriteArrayAttribute = writeArrayAttribute } } }
public static void Main()
Console.WriteLine("Environment version: {0} ({1})", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version);
Console.WriteLine("{0} version: {1}", typeof(JsonSerializer).Assembly.GetName().Name, typeof(JsonSerializer).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");