【德华说插件开发】之Json序列化和反序列化(BOS设计器二开)原创
金蝶云社区-德华说
德华说
13人赞赏了该文章 1,066次浏览 未经作者许可,禁止转载编辑于2022年05月24日 10:53:19

我们在做插件开发的时候,经常会去调用第三方的接口,而数据传输一般都使用Json格式字符串(XML逐渐淘汰)。


那么今天德华来聊一聊在插件开发中,如何使用Json的序列化和反序列化。


什么是Json?

简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。

我们看代码:

{
    "name": "中国",
    "province": [
    {
        "name": "黑龙江",
        "cities": {
            "city": ["哈尔滨", "大庆"]
        }
    }, {
        "name": "广东",
        "cities": {
            "city": ["广州", "深圳", "珠海"]
        }
    }, {
        "name": "台湾",
        "cities": {
            "city": ["台北", "高雄"]
        }
    }, {
        "name": "新疆",
        "cities": {
            "city": ["乌鲁木齐"]
        }
    }
    ]
}


Json字符串

很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
'{"a": "Hello", "b": "World"}'

也就是说,我们经常调用第三方接口传输的都是上述代码中的json格式字符串了。


Json对象

同样,Json可以转换为JavaScript的对象。然后直接用点.运算符去调用。

{a: 'Hello', b: 'World'}

什么是序列化?

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。


Json序列化

Json序列化只是序列化技术中的一种而已。

例如json对象转换为json字符串:

{a: 'Hello', b: 'World'}

转换为

'{"a": "Hello", "b": "World"}'

这就是序列化:对象到字符串。


Json 反序列化

反序列化就是反过来:字符串到对象。

'{"a": "Hello", "b": "World"}'

转换为

{a: 'Hello', b: 'World'}


C# 序列化和反序列化

'{"a": "Hello", "b": "World"}'

上述json字符串转换为如下test对象时,如何做呢?

public class Test{
    public string a{get;set;}
    public string b{get;set;}
}

string jsonStr = '{"a": "Hello", "b": "World"}';
Test test = JsonConvert.DeserializeObject<Test>(jsonStr);  //反序列化
jsonStr = JsonConvert.SerializeObject(test ); //序列化



小伙伴,如果有收获那动动你的小手关注、点赞、收藏3连!

图标赞 13
13人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!