1. 程式人生 > >Linq to json

Linq to json

新增引用:

using Newtonsoft.Json.Linq;
using System.Collections.Generic;

操作json字串方法

    /// <summary>
    /// linq操作json
    /// </summary>
    public void OpearteJson()
    {
        string jsonStr = "{\"name\":\"小明\",\"age\":\"20\",\"phone\":[{\"type\":\"phone\"},{\"type\":\"huawei\"}]}";
        
var jsonObject = JObject.Parse(jsonStr); var name = jsonObject["name"].ToString();//根據物件key獲取value var phoneArr = jsonObject["phone"] as JArray;//獲取陣列key鍵的值 foreach (JObject item in phoneArr)//遍歷json物件陣列 { foreach (var keyValue in item)//迴圈遍歷json物件鍵值對 {
var key = keyValue.Key; var value = keyValue.Value.ToString(); } } }

遍歷json字串的key value值:

/// <summary>
    /// 獲取json字串的鍵值對,不包含陣列json
    /// </summary>
    /// <param name="jsonStr">json字串,例如:"{\"name\":\"szl\",\"age\":\"20\"}"</param>
    /// <returns></returns>
public Dictionary<string, List<string>> GetJsonKeyValue(string jsonStr) { JObject jsonObj = JObject.Parse(jsonStr);//將json字串轉換成json物件 Dictionary<string, List<string>> result = new Dictionary<string, List<string>>(); List<string> key = new List<string>(); List<string> value = new List<string>(); foreach (var item in jsonObj)//遍歷json物件的所有鍵值對 { key.Add(item.Key); value.Add(item.Value.ToString()); } result.Add("key", key); result.Add("value", value); return result; }