惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyberwarzone
Cyberwarzone
F
Full Disclosure
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Threatpost
S
SegmentFault 最新的问题
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
C
Cyber Attacks, Cyber Crime and Cyber Security
Google DeepMind News
Google DeepMind News
Know Your Adversary
Know Your Adversary
S
Schneier on Security
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
G
GRAHAM CLULEY
Latest news
Latest news
P
Privacy International News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
G
Google Developers Blog
L
LangChain Blog
MyScale Blog
MyScale Blog
Project Zero
Project Zero
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
SecWiki News
SecWiki News
T
Tor Project blog
C
Check Point Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学

博客园 - George.j

数据库建模三步骤:概念模型->逻辑模型->物理模型 linux常用命令整理 RN学习1——前奏,app插件化和热更新的探索 推荐:根据ISBN号查询图书信息的API - 豆瓣API 如何去设计一个自适应的网页设计或HTMl5 教育行业SaaS选型 需要注意的三点问题 SaaS系列介绍之十五: SaaS知识重用 SaaS系列介绍之十四: SaaS软件开发分析 SaaS系列介绍之十三: SaaS系统体系架构 SaaS系列介绍之十二: SaaS产品的研发模式 SaaS系列介绍之十一: SaaS商业模式分析 SaaS系列介绍之一: SaaS的前身ASP介绍 SaaS系列介绍之十: SaaS的商业模式 SaaS系列介绍之九: SaaS营销模式分析 SaaS系列介绍之八: SaaS的运营模式 SaaS系列介绍之七: SaaS模式分析(下) SaaS系列介绍之六: SaaS模式分析(上) SaaS系列介绍之五: 我国SaaS市场分析 SaaS系列介绍之四:我国SaaS市场发展
FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具
George.j · 2015-09-30 · via 博客园 - George.j

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

/**

 * 这是关于FastJson的一个使用Demo,在Java环境下验证的;

 * 使用的时候可以参照这个例子进行回忆!

 * 备注:下面写的Json格式的数据"前面的\,意思是告诉编译器忽略掉它后面的"。

 * 后面定义有三个类:User、Group、Weibo

 * @author liuzhao

 */

public class JsonDemo {

    public static void main(String[] args) {

        json2JsonObjectM1();

        json2BeanM2();

        json2JSONArrayM3();

        json2JavaBeanM4();

        bean2JsonM5();

        bean2JSONObjectM6();

        complexExampleM7();

        complex2JsonM8();

        complexMap2JsonM9();

    }

    /**

     * 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息

     */

    private static void json2JsonObjectM1() {

        String s = "{\"name\":\"liuzhao\"}";

        JSONObject object = JSON.parseObject(s);

        System.out.println(object.get("name"));

        /**

         * 打印:

         * liuzhao

         */

    }

    /**

     * 将Json文本数据转换为JavaBean数据!

     * 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!

     */

    private static void json2BeanM2() {

        String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";

        Weibo weibo = JSON.parseObject(s, Weibo.class);

        System.out.println(weibo.getId());

        System.out.println(weibo.getCity());

    }

    /**

     * 将Map类型的数据转换为JsonString

     */

    private static void complexMap2JsonM9() {

        Group group = new Group();

        group.setId(1);

        group.setName("group");

        User user1 = new User();

        user1.setId(2);

        user1.setName("user1");

        User user2 = new User();

        user2.setId(3);

        user2.setName("user2");

        group.getList().add(user1);

        group.getList().add(user2);

        Map<Integer, Object> map = new HashMap<Integer,Object>();

        map.put(1, "No.1");

        map.put(2, "No.2");

        map.put(3, group.getList());

        String jsonString = JSON.toJSONString(map);

        System.out.println(jsonString);

        /**

         *  输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}

         */

    }

    /**

     * 由一个复杂的Object到Json的Demo

     */

    private static void complex2JsonM8() {

        Group group = new Group();

        group.setId(1);

        group.setName("group");

        User user1 = new User();

        user1.setId(2);

        user1.setName("user1");

        User user2 = new User();

        user2.setId(3);

        user2.setName("user2");

        group.getList().add(user1);

        group.getList().add(user2);

        String jsonString = JSON.toJSONString(group);

        System.out.println(jsonString);

        /**

         *  输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}

         */

    }

    /**

     * 一个相对复杂的例子:

     * JSON文本数据:

     *      首先是JSONObject,转换为JSONArray;

     *      然后将JSONArray转换为JavaBean

     */

    private static void complexExampleM7() {

        String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"

                + ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"},"

                + "{id:\"110000\",\"city\":\"#006北#005京市\"},"

                + "{id:\"110000\",\"city\":\"北#002京市\"},"

                + "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}";

        JSONObject object = JSON.parseObject(s);

        Object jsonArray = object.get("js");

        System.out.println(jsonArray);

        List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);

        for (Weibo weibo : list) {

            System.out.println(weibo.getCity());

        }

    }

    /**

     * 将JavaBean转换为JSON对象

     */

    private static void bean2JSONObjectM6() {

        Weibo weibo = new Weibo("0373", "洛阳");

        JSONObject json = (JSONObject) JSON.toJSON(weibo);

        System.out.println(json.get("id"));

        /**

         * 打印:

         * 0373

         */

    }

    /**

     * 将JSON文本转换为JavaBean的集合;

     * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合

     */

    private static void json2JavaBeanM4() {

        String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";

        List<Weibo> list = JSON.parseArray(s, Weibo.class);

        for (Weibo weibo : list) {

            System.out.println(weibo.getCity());

        }

        /**

         * 打印:

         * 平顶山

         * 南阳

         */

    }

    /**

     * 将json数据转化为JSONArray:

     * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)

     * 获取JSONArray中的数据转换为String类型需要在外边加"";

     */

    private static void json2JSONArrayM3() {

        String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";

        JSONArray array = JSON.parseArray(s);

        String str = array.get(1)+"";

        System.out.println(array.get(0));

        JSONObject object = JSON.parseObject(str);

        System.out.println(object.get("id"));

        /**

         * {"city":"平顶山","id":"0375"}

            0377

         */

    }

    /**

     * 将JavaBean转换为Json格式的数据/Json文本

     * 用户数据的传递:例如上传服务器

     */

    private static void bean2JsonM5() {

        Weibo weibo = new Weibo("123456", "上海");

        String string = JSON.toJSONString(weibo);

        System.out.println(string);

        /**

         * 打印:

         * {"city":"上海","id":"123456"}

         */

    }

}