下载地址:LitJson.dll下载

一个简单示例:
String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemid’:1002,’itemname’:’hello2’}]}";             
//*** 读取JSON字符串中的数据 *******************************           
JsonData jd = JsonMapper.ToObject(str);         
String name = (String)jd["name"]; 
long id = (long)jd["id"];           
JsonData jdItems = jd["items"];     
int itemCnt = jdItems.Count;
// 数组 items 中项的数量
foreach (JsonData item in jdItems)
// 遍历数组 items           
{int itemID = (int)item["itemid"];               
String itemName = (String)item["itemname"];       
}              //*** 将JsonData转换为JSON字符串 ***************************          String str2 = jd.ToJson();

LitJSON是一个.NET平台下处理JSON格式数据的类库,小巧、快速。它的源代码使用C#编写,可以通过任何.Net平台上的语言进行调用,目前最新版本为LitJSON 0.5.0。



与以下这几个.Net平台上的开源JSON库相比,LitJSON的性能遥遥领先:



Jayrock version 0.9.8316



LitJSON version 0.3.0



Newtonsoft Json.NET version 1.1



下面介绍LitJSON中常用的方法:



以下示例需要先添加引用LitJson.dll,再导入命名空间 using LitJson;

下载

1、Json 与 C#中 实体对象 的相互转换



例 1.1:使用 JsonMapper 类实现数据的转换


public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public DateTime Birthday { get; set; }
    }
    public class JsonSample
    {
        public static void Main()
        {
            PersonToJson();
            JsonToPerson();
        }
        ///
        /// 将实体类转换成Json格式
        ///
        public static void PersonToJson()
        {
            Person bill = new Person();
            bill.Name = "www.87cool.com";
            bill.Age = 3;
            bill.Birthday = new DateTime(2007, 7, 17);
            string json_bill = JsonMapper.ToJson(bill);
            Console.WriteLine(json_bill);
            //输出:{"Name":"www.87cool.com","Age":3,"Birthday":"07/17/2007 00:00:00"}
        }         ///
        /// 将Json数据转换成实体类
        ///
        public static void JsonToPerson()
        {
            string json = @"
            {
                ""Name""    : ""www.87cool.com"",
                ""Age""      : 3,
                ""Birthday"" : ""07/17/2007 00:00:00""
            }";
            Person thomas = JsonMapper.ToObject(json);
            Console.WriteLine("’87cool’ age: {0}", thomas.Age);
            //输出:’87cool’ age: 3
        }
    }

例 1.2:使用 JsonMapper 类将Json字符串转换为C#认识的JsonData,再通过Json数据的属性名或索引获取其值。



在C#中读取JsonData对象 和 在JavaScript中读取Json对像的方法完全一样;



对Json的这种读取方式在C#中用起来非常爽,同时也很实用,因为现在很多网络应用提供的API所返回的数据都是Json格式的,



如Flickr相册API返回的就是json格式的数据。

public static void LoadAlbumData(string json_text)
        {
            JsonData data = JsonMapper.ToObject(json_text);
            Console.WriteLine("Album’s name: {0}", data["album"]["name"]);
            string artist = (string)data["album"]["name"];
            int year = (int)data["album"]["year"];
            Console.WriteLine("First track: {0}", data["album"]["tracks"][0]);
        }

2、C# 中对 Json 的 Readers 和 Writers

public class DataReader
{
    public static void Main ()
    {
        string sample = @"{
            ""name""  : ""Bill"",
            ""age""  : 32,
            ""awake"" : true,
            ""n""    : 1994.0226,
            ""note""  : [ ""life"", ""is"", ""but"", ""a"", ""dream"" ]
          }";
        ReadJson (sample);
    }
    //输出所有Json数据的类型和值
    public static void ReadJson (string json)
    {
        JsonReader reader = new JsonReader (json);
       
        Console.WriteLine ("{0,14} {1,10} {2,16}", "Token", "Value", "Type");
        Console.WriteLine (new String (’-’, 42));
        while (reader.Read())
        {
            string type = reader.Value != null ? reader.Value.GetType().ToString() : "";
            Console.WriteLine("{0,14} {1,10} {2,16}", reader.Token, reader.Value, type);
        }
    }
}

//输出结果:



//      Json类型        值          C#类型

//------------------------------------------

//  ObjectStart                           

//  PropertyName      name    System.String

//        String      Bill    System.String

//  PropertyName        age    System.String

//          Int        32    System.Int32

//  PropertyName      awake    System.String

//      Boolean      True  System.Boolean

//  PropertyName          n    System.String

//        Double  1994.0226    System.Double

//  PropertyName      note    System.String

//    ArrayStart                           

//        String      life    System.String

//        String        is    System.String

//        String        but    System.String

//        String          a    System.String

//        String      dream    System.String

//      ArrayEnd                           

//    ObjectEnd



例 2.2:JsonWriter类的使用方法 

public class DataReader
{
    //通过JsonWriter类创建一个Json对象
    public static void WriteJson ()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        JsonWriter writer = new JsonWriter (sb);
        writer.WriteArrayStart ();
        writer.Write (1);
        writer.Write (2);
        writer.Write (3);
        writer.WriteObjectStart ();
        writer.WritePropertyName ("color");
        writer.Write ("blue");
        writer.WriteObjectEnd ();
        writer.WriteArrayEnd ();
        Console.WriteLine (sb.ToString ());
        //输出:[1,2,3,{"color":"blue"}]
    }
}


.NET平台开源JSON库LitJSON的使用方法的更多相关文章

  1. [C#技术] .NET平台开源JSON库LitJSON的使用方法

    一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...

  2. (转).NET平台开源JSON库LitJSON的使用方法

    一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...

  3. .NET平台开源JSON序列化

    转载: http://blog.csdn.net/ddgweb/article/details/39643747 一个简单示例: String str = "{’name’:’cyf’,’i ...

  4. 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )

    Json 已成为当前服务器与 web 应用之间数据传输的公认标准. 微服务及分布式架构经常会使用 Json 来传输此类文件,因为这已经是 webAPI 的事实标准. 不过正如许多我们习以为常的事情一样 ...

  5. 教程-delphi的开源json库:superobject,用法简介

    困惑一天的问题 一个语句搞定了... 回头细说. superobject中的{$DEFINE UNICODE} 就是它,这是json官方推荐的Delphi处理json的包,地址: http://www ...

  6. fastjson是阿里巴巴的开源JSON解析库

    fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...

  7. 高性能JSON库---FastJson(阿里巴巴)

    1.FastJSON简单介绍 Fastjson是一个Java语言编写的高性能功能完好的JSON库. 它採用一种"假定有序高速匹配"的算法,把JSON Parse的性能提升到极致,是 ...

  8. SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法

    最近项目组很多人问我,从前台页面传到后台controller控制层或者WebApi 时如何取值和运算操作. 今天就都大家一个在框架内一个取值技巧 前台JS调用代码: 1.下面是选中一行数据后右键点击时 ...

  9. 28 个 C/C++ 开源 JSON 程序库性能及标准符合程度评测

    28 个 C/C++ 开源 JSON 程序库性能及标准符合程度评测 坊间有非常多的 C/C++ JSON 库,怎么选择是一个难题. [nativejson-benchmark](https://git ...

随机推荐

  1. luogu1965 转圈游戏

    题目大意 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,--,依此 ...

  2. POJ1742 Coins 背包

    题目大意:给出一些钱币的价值和对应的数目,求在一定价值限定下这些钱币能凑成的价值数. 本题用多重背包直接拆分或二进制拆分法都太慢.说起处理一组物品,完全背包可算是比较效率高的,但是本题中物体的数目是有 ...

  3. 关于ShapeDrawable应用的一些介绍(下)

    我们今天接着来看一下Shape中的stroke属性,stroke其实就是边缘的意思,当我们在定义画笔的时候,有很多时候会用到 FILL 和 STROKE,前者能够画出一个实心的形状,而后者就画出一个空 ...

  4. DBS-PowerDesginer:PowerDesigner最基础的使用方法入门学习

    ylbtech-DBS-PowerDesginer:PowerDesigner最基础的使用方法入门学习 1.返回顶部 1. 1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其 ...

  5. 给统计人讲Python(1)_科学计算库-Numpy

    本地代码是.ipynb格式的转换到博客上很麻烦,这里展示部分代码,了解更多可以查看我的git-hub:https://github.com/Yangami/Python-for-Statisticia ...

  6. INFORMIX MATCHES的使用详解

    MATCHES  运算符返回 TRUE ,如果一个字符串与给定的掩码匹配. 语法 expr  [NOT]  MATCHES  mask   [ ESCAPE "char" ] ex ...

  7. Walking on the path of Redis --- Introduction and Installation

    废话开篇 以前从来没听说过有Redis这么个玩意,无意间看到一位仁兄的博客,才对其有所了解,所以决定对其深入了解下.有不对的地方还请各位指正. Redis介绍 下面是官方的介绍,不喜欢english的 ...

  8. 从ReadImage到ML- 一个不错的博客

    实在对不起原作者,为了不把文章淹没在 转载的海洋里.... 原文链接:     http://www.cnblogs.com/tornadomeet/archive/2012/09/26/270404 ...

  9. 7 Python+Selenium浏览器设置

    [环境信息] python3.6+selenium3.0.2+Firefox50.0+win7 [浏览器设置方法] 1.浏览器最大化:maximize_window() 2.设置浏览器宽.高:set_ ...

  10. Project Euler 35 Circular primes

    题意:197被称为圆周素数,因为将它逐位旋转所得到的数:197/971和719都是素数.小于100的圆周素数有十三个:2.3.5.7.11.13.17.31.37.71.73.79和97.小于一百万的 ...