zoukankan      html  css  js  c++  java
  • [Silverlight]奇技银巧系列2

    Silverlight奇技银巧系列:

    所有该系列中的文章只为介绍一些Silverlight中或隐藏在Silverlight .NET framework鲜为人知的知识和技巧。这些文章并非教程,也是不是什么技术指导,您只需对文章介绍的内容保有印象。这些知识和技巧也许会在不经意间绽放银色光芒。

    我想对于搞web开发的人来说,JSON应该是相当亲切而熟悉的字眼。

    直到.NET Framework3.5,在.NET中处理JSON才变得轻松一些,而JSON.NET这类的辅助项目也让.NET对JSON处理锦上添花。没记错的话是Json.NET3.0提出了JObject的概念,那真的很爽…

    虽然Json.NET最近也推出了支持Silverlight的类库项目,不过对于Silverlight这种客户端的东西,多弄个dll进去难免影响初始化(下载)速度,对于有“洁癖”的你我来说着实不够尽善尽美。

    不过System.Json拯救了我们。在Silverlight中,这个程序集提供了对JSON类型数据的支持,有了它你就可以使用c#或者vb.net代码处理Json对象了。

    该命名空间下包含4个类:

    • JsonValue

    其他三个类的基类。它提供了用来处理string和stream的Load()、Save()、Parse()等方法。它的ToString()方法被重载,用来以字符串形式显示原始Json.

    • JsonPrimitive

    用来将CLR中的原始类型(如byte,string和int等)处理为Json。它一般这么用:

    var jInt = new JsonPrimitive(25);
    var jString = new JsonPrimitive("abc");
    var jDouble = new JsonPrimitive(3.14);

    • JsonArray

    该类代表一个JsonValue类型的数组。参照上面例子中的的JsonPrimitive,JsonArray可以这样构造:

    var ar = new JsonArray { jInt, jString, jDouble };

    自然,ToString()以后就变成这个模样了:

    image

    • JsonObject

    用来表现键值对集合,它可以这样构造:

    var ob = new JsonObject {
        {"jInt", jInt}, 
        {"jString", jString}, 
        {"jDouble", jDouble}
    };

    ToString()以后:

    image

    最后说一下JsonType枚举,该枚举包括

    • Array
    • Bollean
    • Number
    • Object
    • String

    它由JsonValue的JsonType属性返回,反映该JsonValue的实例所代表的对应CLR属性的类型。

    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.AppendLine("JInt的JsonType:" + jInt.JsonType);
    sb.AppendLine("jString的JsonType:" + jString.JsonType);
    sb.AppendLine("jDouble的JsonType:" + jDouble.JsonType);
    sb.AppendLine("ar的JsonType:" + ar.JsonType);
    sb.AppendLine("ob的JsonType:" + ob.JsonType);
    outputBlock.Text = sb.ToString();

    image

  • 相关阅读:
    换行符 CR
    c# 定义的属性名与保留关键字冲突
    Redis 以window 服务启动
    c# Guid.NewGuid().ToString(format
    select 下拉源动态赋值
    html 控制input标签只能输入数字
    HTTP 错误 500.19
    Android debugger 出现提示Connected to the target VM, address: 'localhost:xxxx', transport: 'socket'
    siege--Web性能压测工具
    python+selenium上传文件注意点
  • 原文地址:https://www.cnblogs.com/024hi/p/1567256.html
Copyright © 2011-2022 走看看