108 lines
3.4 KiB
C#
108 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace Newtonsoft.Json.Tests.Documentation
|
|
{
|
|
public class JsonNetVsWindowsDataJsonTests
|
|
{
|
|
public void CreatingJson()
|
|
{
|
|
#if NETFX_CORE
|
|
#region CreatingJSON
|
|
// Windows.Data.Json
|
|
// -----------------
|
|
JsonObject jsonObject = new JsonObject
|
|
{
|
|
{"CPU", JsonValue.CreateStringValue("Intel")},
|
|
{
|
|
"Drives", new JsonArray
|
|
{
|
|
JsonValue.CreateStringValue("DVD read/writer"),
|
|
JsonValue.CreateStringValue("500 gigabyte hard drive")
|
|
}
|
|
}
|
|
};
|
|
string json1 = jsonObject.Stringify();
|
|
|
|
// LINQ to JSON
|
|
// ------------
|
|
JObject jObject = new JObject
|
|
{
|
|
{"CPU", "Intel"},
|
|
{
|
|
"Drives", new JArray
|
|
{
|
|
"DVD read/writer",
|
|
"500 gigabyte hard drive"
|
|
}
|
|
}
|
|
};
|
|
string json2 = jObject.ToString();
|
|
#endregion
|
|
#endif
|
|
}
|
|
|
|
public void QueryingJson()
|
|
{
|
|
#if NETFX_CORE
|
|
#region QueryingJSON
|
|
string json = @"{
|
|
'channel': {
|
|
'title': 'James Newton-King',
|
|
'link': 'http://james.newtonking.com',
|
|
'description': 'James Newton-King's blog.',
|
|
'item': [
|
|
{
|
|
'title': 'Json.NET 1.3 + New license + Now on CodePlex',
|
|
'description': 'Annoucing the release of Json.NET 1.3, the MIT license and the source on CodePlex',
|
|
'link': 'http://james.newtonking.com/projects/json-net.aspx',
|
|
'category': [
|
|
'Json.NET',
|
|
'CodePlex'
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}";
|
|
|
|
// Windows.Data.Json
|
|
// -----------------
|
|
JsonObject jsonObject = JsonObject.Parse(json);
|
|
string itemTitle1 = jsonObject["channel"].GetObject()["item"].GetArray()[0].GetObject()["title"].GetString();
|
|
|
|
// LINQ to JSON
|
|
// ------------
|
|
JObject jObject = JObject.Parse(json);
|
|
string itemTitle2 = (string)jObject["channel"]["item"][0]["title"];
|
|
#endregion
|
|
#endif
|
|
}
|
|
|
|
public void Converting()
|
|
{
|
|
#if NETFX_CORE
|
|
#region Converting
|
|
JsonObject jsonObject = new JsonObject
|
|
{
|
|
{"CPU", JsonValue.CreateStringValue("Intel")},
|
|
{"Drives", new JsonArray {
|
|
JsonValue.CreateStringValue("DVD read/writer"),
|
|
JsonValue.CreateStringValue("500 gigabyte hard drive")
|
|
}
|
|
}
|
|
};
|
|
|
|
// convert Windows.Data.Json to LINQ to JSON
|
|
JObject o = JObject.FromObject(jsonObject);
|
|
|
|
// convert LINQ to JSON to Windows.Data.Json
|
|
JArray a = (JArray)o["Drives"];
|
|
JsonArray jsonArray = a.ToObject<JsonArray>();
|
|
#endregion
|
|
#endif
|
|
}
|
|
}
|
|
} |