JProperty、JObject、JArray
以下列出 JProperty、JObject、JArray 關係與用法
using System;
using Newtonsoft.Json.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//製作物件一
JProperty jp_id1 = new JProperty("id", 123);
JProperty jp_name1 = new JProperty("name", "Tom");
JObject jo1 = new JObject();
jo1.Add(jp_id1);
jo1.Add(jp_name1);
//製作物件二
JProperty jp_id2 = new JProperty("id", 456);
JProperty jp_name2 = new JProperty("name", "Bill");
JObject jo2 = new JObject();
jo2.Add(jp_id2);
jo2.Add(jp_name2);
//製作陣列
JArray ja = new JArray();
ja.Add(jo1);
ja.Add(jo2);
//將陣列以 json 文字型式呈現
string sJa = ja.ToString();
/*
[
{
"id": 123,
"name": "Tom"
},
{
"id": 456,
"name": "Bill"
}
]
*/
//將以文字型式呈現的 json 格式,轉成 JArray 陣列
JArray jaParse = JArray.Parse(sJa);
foreach (JObject item in jaParse)
{
//方式一:取得一 JObject 裡特定 key 的值
Console.WriteLine(item["id"].ToString());
//方式二:取得一 JObject 裡特定 key 的值
Console.WriteLine(item.SelectToken("id").Value<string>());
}
Console.WriteLine("");
}
}
}
說明:
1、如果已知一字串為 object 的 json 格式,則可以使用 JObject.Parse() 方法,將其轉成 JObject 物件。
2、如果已知一字串為 array 的 json 格式,則可以使用 JArray.Parse() 方法,將其轉成 JArray 陣列。
3、如果要取得一 JObject 特定 key 的值可用如下格式
jobject["id"].ToString();
或
jobject.SelectToken("id").Value<string>();