TA的每日心情 | 开心 2018-4-8 22:14 |
---|
签到天数: 1 天 [LV.1]初学乍练
普通会员
- 积分
- 5517
|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557》
* _# `8 f6 l' i/ N* b0 Ajava电子书推荐理由:JSON已经成为RESTful接口设计的事实标准,并在互联网数据交换领域日益受亲睐,是搭建优雅、高效应用程序的得力工具。本书系统展示如何使用JSON工具和消息/文档设计来搭建企业级应用程序与服务,既包括JSON基础知识,又涵盖大量操作实践与使用案例,是全面掌握JSON强大功能的明智之选。熟悉JSON基础知识并学习如何对JSON数据进行建模学习如何在Node.js、Ruby on Rails以及Java中使用JSON使用JSON Schema构建JSON文档来设计并测试API使用JSON搜索工具来搜索JSON文档的内容使用JSON转换工具将JSON文档转换成其他数据格式比较HAL和jsonapi等JSON超媒体格式使用MongoDB来存储和处理JSON文档使用Apache Kafka在服务间交换JSON消息
. w) f. y% O* ^0 ^( b1 |) }
8 O% E( w1 i, A0 `. {$ x作者:汤姆马尔斯 Marrs
8 D6 m: w0 Q7 l3 T出版社:人民邮电出版社
" z+ H& @6 `5 f* S! c3 [2 l出版时间:2018-07-01
& s# J. f: N+ I1 G书籍价格:65.00元
" Q1 S5 B u( O& x! A6 c9 v; ]' x$ `0 r6 o4 B! [. a7 P/ V
% C0 X3 Z' u1 A$ V: [( e5 H9 i6 g! E# ?
' v% S; B2 Z# R/ {1 Y2 rjava电子书目录:' J7 c/ s) f) J/ E4 e6 v% g
第 1 章 JSON概述 32 L$ T. T% n, w2 {3 k4 i
+ D% {% m4 H( g' v4 g. b! a$ i
1.1 JSON是一项技术标准 3
9 z; w3 h- C3 |. T a* v: `: |8 V) X( Y6 }8 X2 m5 E3 R+ T% G
1.2 示例 4" x( `' D _, C
3 r3 F5 f7 `; U* n1.3 为什么使用JSON 5# _: C3 l( ]) z; H ?
+ P7 P9 b2 |7 W# h; A6 `+ a. U2 r
1.4 JSON的核心概念 6
; L$ g. r1 z: W3 m% y6 u7 {1 _- J0 K$ Y8 f' [. a% N( c2 y
1.4.1 JSON数据类型 79 B& X0 A6 ]' O
- K& I. j# L' J/ b" b- ]. b
1.4.2 JSON值类型 9
. f3 o# C. ~. l7 U
; {$ l$ @9 R" _# x) I3 J1.4.3 JSON的版本 11' J8 ?2 o+ v) X
) A- e7 C7 L' k6 H, `9 S1.4.4 JSON中的注释 12% ]$ u; ]; k' y0 I+ A* z
! _$ {/ \; Q2 z' |# |1.4.5 JSON文件及MIME类型 128 S# z: d$ q' G. v O- \% w; Q
$ ]+ e+ R5 p1 V1.4.6 JSON编码规范 12: U/ j1 o# U5 K) E% R. I
4 c" E& L- x8 ~4 ~( V
1.5 本书示例:MyConference 14
( c1 W' P6 o" V/ U; e$ o$ s" [' Q: `/ t# J; U0 \( L
1.5.1 本书技术栈 14
3 s: O( M& Z3 i% A' H) N1 Y( k* N' H. i+ v# h! i
1.5.2 本书架构风格:noBackend 14
+ `% S6 K% d3 s( {5 s# L$ J/ i, L5 c" U; [
1.5.3 用JSON Editor Online对JSON数据进行建模 15
' T; ?9 n( l' L5 v( J. \' z$ `8 }
: B$ y& ?5 l/ h) i1 [2 m- ^& H5 d1.5.4 用JSON Generator生成示例数据 16
: h1 [: l9 d8 U: C. C, I r7 n1 W% ]; h! ~& T4 B
1.5.5 创建并部署模拟API 16: ~9 S9 Q) l% G
# c# f, X& s6 ?/ j' L
1.6 本章回顾 19
4 |$ \$ }; v" d- j# m% G1 }1 Q) L! o8 n. N0 y- z
1.7 内容预告 19
3 B4 v7 j2 C! X0 G
$ }' W9 T' p3 b& D9 K- V$ A第 2 章 在JavaScript中使用JSON 20
+ ] `8 \) V( X$ O' S' {5 T7 j+ Q; r5 R5 j, Y
2.1 安装Node.js 204 s/ G+ A) h P' N, s, r' i, n
% s: c P; w, M1 q0 I5 G2.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 21, f+ e# K4 w' _2 ]9 k# N6 L
/ y3 ]% _' F7 N. g R" D' Q* \2.2.1 用于stringify/parse操作的“JSON”对象 21, K. _& }; F% y0 G6 V0 s
6 Q H! W L# @. R4 ]3 z) k3 m# f, I2.2.2 JavaScript中简单数据类型的JSON序列化操作 21$ O. d9 F1 \4 X# y# u3 o
! Y8 [$ m/ ?3 V" @
2.2.3 使用toJSON()进行对象的序列化操作 23. E6 N. Q$ }6 T' X; ~0 J5 U
9 U5 Q$ o* i3 r2.2.4 使用eval()进行JSON的反序列化操作 240 i2 j, r# Z J' `% G
/ {* v, q$ ?, i6 J: K
2.2.5 使用JSON.parse()进行JSON的反序列化操作 25
8 C H6 Y# _( y( s) A9 `
9 R/ V# k1 Z u( o6 Z4 Q3 c2.3 JavaScript对象和JSON 26" X1 G2 w$ T/ H' ?- e' j
2 T3 s' ]+ ~# j# a( j% I0 I% ~' N2.3.1 Node REPL 26
, t7 A8 }6 E% N& F! i: r6 P4 T6 H4 M; C& B" m% S2 H( W9 M
2.3.2 有关JavaScript对象的更多学习资料 289 P/ s% s: G' y
" d/ _+ f* M6 E- Q% K4 W% w3 \2 L6 P2.4 用模拟API进行单元测试 28$ ^ e* g- E: G, i! r: ~' s& M' }/ D
/ P, q! \+ N/ b2 r- _! n2.4.1 单元测试风格——TDD和BDD 28
' r% a8 R2 M# E' ~6 f& Q+ |: Y: S+ f5 \: Y/ q+ Q! W
2.4.2 使用Mocha和Chai即可完成单元测试 29( K$ d' D* G; Z8 L' m
1 g, N1 j/ A, q! y- B2 K7 E8 n
2.4.3 设置单元测试环境 29* I2 w( ^% _3 h% i
E/ M- f, h& T, F8 @" q4 \2.4.4 Unirest 29
; G1 F1 H9 X1 ~2 U% E7 B
) @( B) r( P3 |( p6 i1 O7 X2.4.5 测试数据 30
% w9 W5 K5 I! k2 n: D* F$ \ d7 i
1 m; g7 Y$ `1 T2 w2.4.6 对演讲者数据进行单元测试 30
# ?6 s) ^. }& H/ P0 c, F
! ]5 y0 D: n3 j6 C2 C) K2.5 搭建小型Web应用程序 31/ C. U2 N8 R N8 S2 u) |/ y6 k! l
7 \4 R% I" K$ g4 O% t3 g" `* Z" k2.5.1 Yeoman 32
" D: p$ y: m' I# x4 l7 L
7 T A6 |+ U3 R8 G' e2.5.2 第 1 阶段:使用Yeoman生成Web应用程序 33
$ ~+ b7 B( ]+ h' L/ n, M
% R, g; D) L& v. e% E2 H: [2.5.3 第 2 阶段:使用jQuery发起HTTP请求 36/ {* T* v8 n) E4 ~. K
N. d) G. G J0 Z
2.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 407 n% v2 L4 f# k: F9 V# I' l7 s( B6 b
6 y( G5 K9 j9 s! J- p0 ^. Z* F/ q2.6 如何继续深入学习JavaScript 44
8 i/ f: h% M8 T$ Q4 g' z0 `
" D$ h$ V7 O2 m; o B) F! ^, `2.7 本章回顾 45
" O; k# x) x8 h/ @, I7 U5 e+ y* b3 H3 v o- ^( N" X
2.8 内容预告 459 }' ?5 G( z( G. p# E+ Z: ~ k5 d
" r4 u" k7 k9 p- x
第 3 章 在Ruby on Rails中使用JSON 46
5 U3 |) M! v' h4 ~) v
- t( W0 ^1 F, { `8 G4 K0 c* N3.1 安装Ruby on Rails 46/ b% b1 d. I( l% F
1 i1 h' O4 p5 _
3.2 Ruby中与JSON有关的gem包 46
! {8 {& g C0 R' l/ ^4 p2 J7 N5 W3 z& E+ k F
3.3 用MultiJson进行序列化 / 反序列化操作 47
5 c3 v4 y2 X% b7 {( D+ }" o; F& e9 q
3.3.1 MultiJson对象 47
+ i* f8 G3 G- p C
+ _7 x1 g7 y, J7 {# r4 t5 ~6 Y, X+ H3.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 48( K$ V* K7 X# I( j4 X
3 T- ?4 q* [; Z, ~( g8 q3.3.3 用MultiJson进行JSON反序列化操作 50
+ W5 U/ e# H0 W1 x* Z; M2 T: a7 b1 R* ~) f E7 h) V5 N
3.3.4 关于JSON和驼峰式命名 529 {* n }4 M% L# j% i. D
8 d/ Y6 B7 X0 g" @$ O! b
3.3.5 用ActiveSupport进行JSON序列化操作 52
# R# j% u# J& b$ V! E- \1 @% O% Z3 W" u# c
3.3.6 用ActiveSupport进行JSON反序列化操作 53/ U+ ?$ `; {$ V2 x/ d/ ]# @
d H$ \" ~& `$ c0 t) U3.4 用模拟API进行单元测试 54
4 U, ~! Y C- e5 l L/ ]" k9 S0 A: h) ~) z
3.4.1 使用Minitest即可完成单元测试 545 s3 Y G+ ?# d
$ i; T* V2 @7 j$ L. }3.4.2 设置单元测试环境 554 a/ o; J" w( `' U! b! T/ I$ {
4 p, i2 p/ I8 n3 S% D# A
3.4.3 测试数据 55
* E" w M! G! i c# Y' V
. `. Y/ k. h% |9 u3.4.4 用Minitest测试API所提供的JSON 55
9 I6 N2 b) e c+ }, O# {$ _# G2 Y: r4 ]% t0 S) S
3.4.5 对演讲者数据的单元测试 55
# Z; M9 n' C7 ^8 P$ a* X* b2 C/ B( _- G+ c4 E' Q W
3.4.6 有关Ruby和Minitest的更多学习资料 59/ m( F* K7 F6 x" k# n- K
. l- ~7 L- z1 D$ H- A) E
3.4.7 似乎少了点什么 59
" K: u" t2 M+ m$ F% l/ H$ W
7 a6 N+ ~! \* ^7 o3.5 用Ruby on Rails搭建小型Web API 59- R. I8 b1 \+ g/ t
2 x- B3 m* E0 {3 m; C
3.5.1 选择JSON序列化工具 60
0 u4 q8 F. S3 [) r1 g" M6 j, y/ _: H6 U
3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 616 F' c7 ?/ M- e1 I5 d
+ S" q o: ]3 c! u# L3.5.3 speakers-api-2——创建API以提供自定义风格的JSON 678 T: p( Z' b1 r) m
) w, s4 Y8 z4 a, a' j- |( O
3.5.4 有关Rails和Rails API的更多学习资料 68
( a3 P& @7 b9 v! g
. ^$ W" |5 b/ ~0 z" r/ A3.6 本章回顾 69
9 p1 F1 v( C- |. p
- p4 g6 O9 |4 y) X1 U3.7 内容预告 69
# `0 T1 i, Z4 c2 ~ o) m0 l. j8 f% X8 }
第 4 章 在Java中使用JSON 70" l, _0 e6 V* m3 G) K
) F/ p; {) A. a; @5 D
4.1 安装Java和Gradle 70
3 o2 H9 c X" u) }0 j
% D% j+ G9 C, D7 d; v: z4.2 Gradle概览 70
; i b K5 r9 D% t- } q, ~3 a. n" V2 u( N$ Q
4.3 使用JUnit即可完成单元测试 721 q3 {" {8 S# L" Y1 v
! J+ I7 F4 b1 e! _+ t+ W4.4 Java中的JSON类库 72
9 z9 d3 Q# `& M% a- p4 q* ^
& J6 C; D9 ~+ b4.5 用Jackson进行JSON序列化 / 反序列化操作 73
9 [2 n7 _" [( O
! @ B' d/ e9 G( U( |4.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 73
) k! J' N: }) s9 c {, E0 g
9 ^% F( u( v) L) e$ Y4.5.2 对Java对象进行序列化 / 反序列化操作 759 P4 L6 U4 I) q# p x
' b2 B1 }7 W5 v/ ~4.6 用模拟API进行单元测试 79
5 N7 O* P' A' ]
( H) k+ ]+ x5 v% Z* n% k" R- c! W4.6.1 测试数据 794 d/ N, S& ^5 m! @# `( {/ V+ u
I# s# v7 J" n5 j- A% K1 | @6 x4.6.2 用JUnit对API提供的JSON进行测试 808 I3 b! N! Q! F, t- e$ p! c
" W0 j8 g4 j, l9 Q$ _4.7 用Spring Boot搭建小型Web API 83
5 ^; q n' y) Q# ^* N
0 x. |6 {. s& p# e+ P" R4.7.1 创建模型 84/ @, T# ]& W: r( t$ J! [( j
8 g/ ^# M9 D0 Y8 g" E* b
4.7.2 创建控制器 85
+ h5 c! u, T+ l( o
+ O3 m" ?6 F, v: ?" k( f4.7.3 注册应用程序 87
7 W; S+ m; j l+ I4 J" E6 V$ g1 e5 u4 U8 ]0 N& V3 Z4 m4 A' O
4.7.4 编写构建脚本 879 K0 W4 G3 V# ]3 e H2 j5 C( {
' @9 A8 O9 z3 k: q7 ?
4.7.5 部署API 89
9 i2 r1 p+ c% b0 x ]
% `. `" X" h5 C* q% ]: z4.7.6 用Postman测试API 89- `- g8 ~5 {- o6 D- R
% m5 C5 O* ?' e/ K4 Q) Y
4.8 本章回顾 90
3 _8 K& p) {. { _' [# t: z0 ]$ P0 D# a
/ K/ k; @9 h1 ^9 A- ?6 h4.9 内容预告 908 X( h9 f. Q# w; n: J1 k4 h% \
+ m; i4 a0 a; w. q& o9 {# y0 wD二部分 JSON生态系统- U& m6 r, L$ W8 W
2 r' P# k( G( y2 L8 {. ]) K& E' T/ R( m
第 5 章 JSON Schema 937 ~/ b1 C3 I. [( K
j: @1 f! ]' e) [' b% U' r3 m" V- a5 H
5.1 JSON Schema概览 93
8 `! H- @6 [/ |# i% c' j* ~1 Z; m" P
5.1.1 JSON Schema是什么 93
, R1 G- k* z! t
5 g3 q& T+ |4 \0 q5 M5.1.2 语法校验与语义校验 949 Z- p) Y) Z$ _1 C
- Q) y( o) f' d: t) b5.1.3 简单示例 945 N9 o# \3 z6 L
* h* f8 }' m' P% B. w* V
5.1.4 Web上的JSON Schema资源 95
3 x/ E+ _' A P+ P; K: W5 E% `4 b$ R
6 O7 x; K- {8 Z8 t5.1.5 为什么使用JSON Schema 96! `7 h+ A* V+ U
+ s# y$ f8 n. B& r) Z7 x
5.1.6 我在JSON Schema上的经历 970 e* Y8 @; T- k! p- E: H
) {$ U) g4 i' a( V8 _- ?
5.1.7 JSON Schema标准的现状 97* r$ Y# _8 i" U( r: j* M a# n& h& e
: H# v1 h8 a/ i5.1.8 JSON Schema与XML Schema 97
3 [' \# @# ]3 J; [6 U: J) C# _/ H
* e1 \1 M; C i. T2 r& f5.2 JSON Schema核心——基础知识与工具 97$ k2 n! ^9 }: ]7 d
2 }0 o7 e" q) s- O5.2.1 JSON Schema工作流与工具 97$ x9 T. H5 K. Y8 N
* a% Z1 r& l( @1 w+ Q- t: `5.2.2 核心关键词 1006 V3 }* L% ^) A$ d' C$ H1 b, \
' K5 \& @1 D' p# r! Z: A" C$ R/ e
5.2.3 基础类型 100
& r6 z* a$ l7 u) d* q( _
9 q' `$ d+ s% V2 {' y5.2.4 数值 103
8 Z* j& X0 E4 a/ }
G8 M* D4 _: l" |& J5.2.5 数组 1043 R# P& S7 V) A1 b% o4 L( M
, i* o& B6 l3 B# _2 ]* _5.2.6 枚举值 1067 }. W7 T1 r b+ {. T8 X8 e3 O* k
0 G/ ]2 P# j7 J" Y- D. x- P5.2.7 对象 1073 C, I0 r7 N; `
& D9 Z& x2 G" l, Q8 p5.2.8 模式属性 108
# ?+ [& y- K* j# Z: E" b; E1 t, V& e# D5 O7 d
5.2.9 正则表达式 1100 T( @" e7 ]9 _4 H( H
Q% }& J X3 s" l" L5 w& B! L5.2.10 依赖属性 111
( h4 K) c( _7 X8 \1 P3 ]+ u2 f+ i2 c6 ^1 i2 X
5.2.11 内部引用 1137 @$ j- Y' z2 [- ]; |/ O$ p
7 r/ |- h& I9 X: o, ?* r5 Y
5.2.12 外部引用 114! L5 X2 n I5 M6 D% `. h
1 X- ?+ U0 x5 M/ g v9 o m, l/ C5 ~
5.2.13 选择校验规则 117
- O9 o$ B! t. R& P& l0 _) L+ ~# E+ ~! P6 `% e
5.3 如何使用JSON Schema设计和测试API 121
. k M, y. J) _" ?* I9 U
- C y( ^# X9 E2 {: T1 J5.3.1 应用场景 1215 t+ M; |/ R- c3 U# ]1 q3 \
! P- v. I; I9 e5.3.2 JSON文档建模 1217 I, h* L1 b/ n5 l. F$ o/ [
$ c; }4 a0 ]- D' a4 K# [
5.3.3 生成JSON Schema 122
- l9 d6 \, P! l+ X+ J7 x, z5 u4 r$ a) j: w$ @; f f; ]' J
5.3.4 校验JSON文档 125
# V w a( O* s. t% b3 Q1 B3 x3 f5 U, G, U- v) U
5.3.5 生成示例数据 126
# g) l- s8 M! I; ?1 @+ S. ?- m1 O/ y8 Z9 V/ `. L. N- ?5 p2 D( A( n
5.3.6 用json-server部署模拟API 1296 m6 T( x9 y4 E5 _
; E' b4 W$ X6 r4 b5.3.7 关于用JSON Schema设计和测试API的一些思考 130) O/ b/ u0 n6 x1 W$ H: z
1 l0 n0 k: l: X/ j7 q5.4 使用JSON Schema类库进行校验 130# @# v4 A% R( J2 A- G* H
% Q- r. {3 B! X# w5.5 如何继续深入学习JSON Schema 131+ F1 M$ S9 e% l) p) z9 ~
$ l6 a+ e: w) U* `3 D' x6 i3 X
5.6 本章回顾 131
' i# ^+ b/ H- o$ d. W7 ?6 g; H8 t5 _" [0 W
5.7 内容预告 131 `" @9 d; U( ^( S9 V
( ?$ f" o( D- y1 `# j- s; ]
第 6 章 在JSON中进行搜索 132
& g2 e7 o/ y! o6 x1 f2 Q/ [
6 S0 _) ?8 G+ G, w1 D6.1 为什么要在JSON中进行搜索 132
* o2 p0 O4 D8 {, y1 h9 ^8 A+ b
6 L6 n9 ^0 P {6.2 JSON搜索类库和工具 132
0 A+ o8 c5 A) I" V. U& i1 E9 D6 J: B$ }% u C7 O. N, M8 \/ J
6.2.1 其他you秀工具 1336 W! A8 k2 w8 s
' ], P2 m* P) E3 K" u! S6.2.2 选择工具的标准 133" N3 \# c6 i- f( R d4 d: h
# r1 v9 g0 e5 W6.3 测试数据 134: _8 ]/ A. I% _- \3 s
9 q) a c5 K. s* I" Q2 o$ g6.4 设置单元测试环境 135
) q& S! a* Y0 l
6 l& C7 f9 p$ E' n! F* G# ]6.5 比较JSON搜索类库和工具 136
+ z6 M5 r! u" \. {' V, X) G& H: _* {' y5 w
6.5.1 JSONPath 136- J* p5 O& V2 M8 s2 |. s
1 @# [) m/ S4 |
6.5.2 JSON Pointer 141' n6 ], L& t# O7 u7 s7 V
) m, @2 p8 |0 t
6.5.3 jq 145, K( Q( ^/ j% [" n2 t5 h% b6 N: q
! F# y6 A2 s, I* |( a4 R
6.6 搜索工具评估——总结概要 154
. J* D F6 U. ?8 G# I5 m: }9 H) F9 U% A; j$ f+ ^% o4 x" u
6.7 本章回顾 155
8 Q4 |( P- D0 j! e& Q8 i1 ?. ^/ t1 v
6.8 内容预告 155
2 Y# Q' o: X; u1 t: ?% W! a* [$ A$ q0 ~8 U( v/ w
第 7 章 JSON转换 156
, r: J3 |1 D- c. [' _6 o/ B$ m, Y9 g) x
7.1 JSON转换类型 156
" B ~4 w2 I' e( U: W
6 H; N" E7 X0 W1 ~% M% ~7.2 选择JSON转换类库的标准 157
- k% L, ]0 p2 l% ~1 z ]
9 A S" o! s7 Q* L; d7.3 测试输入数据 157
7 w' d7 O) B- {+ H, [5 j2 |9 G' H, ~* e2 A
7.4 将JSON转换为HTML 159
8 C4 k% k' v e) y l
& N- K. ^0 t, W7.4.1 目标HTML文档 159
% }' Q X8 R; J( p) c
) b" }3 ?. g2 i3 P1 {) U( s9 s& A7.4.2 Mustache 160
+ z* ^# c0 Q1 M) E/ p$ Z
1 a9 y% D9 @! X/ Z7.4.3 Handlebars 165 f; S) h4 w8 O/ K
/ a2 ]6 M! X9 h7 O4 C
7.4.4 转换工具评估——总结概要 170
7 j! ]: e( D0 h. w) ?, a: m6 ^% B+ Q
7.5 JSON格式转换 170; a: J6 @, e0 b& r* U4 O
3 m1 I" E8 Z" J7.5.1 存在的问题 170
* P. Q; R4 y6 F$ _
# Z8 [% C) A. o5 l7.5.2 JSON格式转换类库 170
& A& C7 A% Z2 ]% `9 S* c; _
% t( f5 u+ N' j7 K. p3 F7.5.3 其他you秀工具 171
4 e4 v4 c8 t$ k) p! a0 l" z B4 |; q+ K8 j4 ^6 w% D, T5 ~
7.5.4 目标JSON输出 171
# ?& B$ q2 B' p n* T' Z. _
$ h9 K! @6 l9 k3 i& p. d7.5.5 JSON Patch 1729 j9 \3 d$ b9 E" l: r1 @
5 Z8 M/ A. H8 S4 j4 v$ C7 z7.5.6 JSON-T 177
# D( c4 m% g A+ }! o# s1 f; @
N& y' _7 W1 W# y. d7.5.7 Mustache 180- F" b' {& o5 p& ^; f2 Q& b
; Y3 {" Z4 C. `6 n7 v; g
7.5.8 Handlebars 182
4 U2 C: y1 t" e, V+ Q- f. u5 [" M" m" F
7.5.9 转换工具评估——总结概要 184
# N" J( d/ m; b% B3 v4 z. J- ~, b* n
7.6 JSON与XML的相互转换 185
- \0 N5 N5 Y: l) L/ m
& \5 I. H k2 D, \: O7.6.1 传统转换工具 185
1 I( H3 r7 W& z; T/ j$ c: i9 e/ R( q
: U3 I+ P! p5 v' N& s3 u1 T: [7.6.2 传统转换工具所面对的问题 193
6 L2 K& z: M+ Y! C3 ~' {1 i K, Q4 q5 h8 K6 j
7.6.3 XML-JSON相互转换——总结概要 193
: L% {' m2 s8 t$ }
* A9 u. |2 z& y( P7.6.4 JSON-XML相互转换——单元测试 194
# } a# k: d7 F1 X b9 Z) A
/ ^9 \5 B4 \$ i5 d7.7 本章回顾 196
/ s3 v3 |/ {8 [5 u
1 o# w) a9 m* G; g- g7.8 内容预告 1962 L$ N$ k; I0 Q' h2 u2 S# b
& a' s6 d {4 f% i. S# C第三部分 JSON的企业级应用
3 ~% ~- p. d9 j8 z- K4 i) d2 g* p& Q& p
( O& U% [: p2 l; }+ ]3 x4 A第 8 章 JSON与超媒体 199# ?. A% U3 y% u6 q- t0 S
4 m: o- {7 h+ j9 u8.1 超媒体格式对比 200
! @) z6 R" G" X% d# w, l8 ^
m& I( A; ?, S& ^2 w: W) O5 i8.1.1 定义关键词 201# V2 y' v/ D) ~' H' ~2 k1 B, T
3 b$ C2 ^7 p) ^7 `8 v8.1.2 关于超媒体的个人看法 201$ j* U$ `: T" r) f+ y- Q
; O+ L' T M1 C1 ^9 Y" p$ g8 t
8.1.3 Siren 202
! _! ^. b& |# Z. G5 R0 L1 A6 [ Y3 v6 M8 s" V( F
8.1.4 JSON-LD 203! P; E$ R) d' ~* s* T# J0 o
! z" T/ ]& u/ C6 E" V/ R, d: @: I8.1.5 Collection JSON 207
9 Z! y9 T/ l6 c' V$ N0 i0 q* t* u
1 r' S, V! P' U$ d7 g8.1.6 json:api 2081 f# y( p8 c& Y I1 w5 t' W9 J8 a$ V
. c) s& M8 C1 ~9 a( j6 {5 K
8.1.7 HAL 211
! b% h% b# o" E( J0 R
# a3 U) Q2 k5 A% b2 Q8.2 结论 215: B# _: {: l. U; Z: {
7 s2 u, X0 P. v1 m W3 f s8.3 建议 2163 V: p$ w/ Z3 ?0 n4 f0 r
) ~9 h t8 T( o" K, @/ L' b) M
8.4 实际中遇到的问题 217
; @" c4 J% a1 U- V
. X2 i4 R2 d7 T" S8.5 在演讲者数据API中用HAL进行测试 217
2 E( r' [4 ~7 F8 D& A. d: f' x R7 B8 Y7 g6 {9 X
8.5.1 测试数据 217
" P" c, j& X6 `9 E
5 B/ W! v' Z! R0 R5 y: p8.5.2 HAL单元测试 219' F- {$ L( }7 Q( t \5 F! S
& t1 }4 }1 j% F8 m4 O& U8.6 在服务器端使用HAL 222
& r5 z; A- e. N# e6 h
' N0 ?* I( V" Z1 b4 `8.7 深入学习超媒体 223
% J4 [3 E* o6 @) d0 c
% S. e5 z7 P' S2 ~' C2 H$ }& e% P8.8 本章回顾 223
. x0 |1 g# r8 c0 ]% d+ B6 G' o1 w& o; R& `/ |
8.9 内容预告 223
2 ~! ~* K* ], C; p9 h, F
2 V: d' i% G+ N, ~, w5 D& P, }% y第 9 章 JSON与MongoDB 224- d/ \0 f; C' e! u
0 k- S& r- m6 A. S1 b9.1 关于BSON 224
, Z& u% ]) A& r: n
" } E* k; ?. J9 ~7 Q$ f9.2 安装MongoDB 225; h6 P0 H) L i+ m, O* x
) h3 ~3 Q K" o' K# [
9.3 MongoDB服务器及相关工具 225% Q+ V- P8 m) w8 I$ \6 B
, {* q+ ]$ b6 i0 j, i9 [9.4 MongoDB服务器 225: P* z$ q, _: W! ~, N/ a& R# B
$ b+ V- E( K }
9.5 将JSON导入MongoDB 226* l! h2 t/ D/ Z* [9 I! H" y
$ G) f3 t# S3 X/ m9.6 MongoDB命令行 228* t7 o$ U2 K0 J+ E) S& q
: ^9 p4 `2 b6 h. D# D) Z) N9.7 从MongoDB中导出JSON文档 231
9 e; E, J }4 o0 @
7 o. W$ j* \, K1 h' G; d( Z9.8 关于Schema 233
" v1 U% q& e5 f
3 Q0 S9 y- M- P2 i9.9 用MongoDB进行RESTful API测试 2343 Y3 w0 e4 a5 j8 n
# j L' J2 S! w
9.9.1 测试输入数据 235
: n7 C2 N% p( h* T1 S' e6 A6 L9 B2 M' X X
9.9.2 对MongoDB进行RESTful封装 235
5 b9 {- {6 O/ U# g. `! g$ b
3 W" T: k3 V1 }1 ~6 @+ N( w! G9.10 本章回顾 237: \9 F U3 P) n6 z/ c
5 r+ e. _) J7 \
9.11 内容预告 2386 K# y o& q# l0 ^. k
6 O9 \$ B9 }# M% @" o7 R! U& o9 p( l第 10 章 用Kafka实现JSON消息系统 239
2 S3 u7 K- ^6 Z; A/ h
6 v- J; ^! n. t+ `% a2 m10.1 Kafka的用例 239$ y; ?/ g/ l& o
, m# ?4 {2 [" n) _10.2 Kafka中的概念和专有名词 240* O0 `% E" \3 c6 R( R" C, E2 l
/ R3 h+ z5 c8 I i; I10.3 Kafka生态系统——相关项目 2419 Y! M! e8 b, B. A
: M) _2 K) L& t, j& ]! {
10.4 配置Kafka环境 241' N2 P! N4 n- y0 D2 q" m
& _1 t! L7 y0 f
10.5 Kafka命令行界面 242+ a; Y' H" C: j& W7 p
; n( H0 ]0 i' J10.5.1 如何用命令行界面发布JSON消息 242
) R- T7 b6 N' `9 C9 s
% ~ q' O/ A6 l3 `10.5.2 启动ZooKeeper 243
* s4 Z$ e% C% k/ S& W5 N) u9 e* @6 r9 X3 d/ ]$ |# N
10.5.3 启动Kafka 243) K# z4 S8 N& Z4 Q5 g3 W6 Q3 ?
9 q3 b# V& V( d$ n6 W10.5.4 创建主题 243
, p+ \. x O5 @2 `4 t$ D% C& V& p( p" ^* w3 n
10.5.5 列举主题 244
) X9 }7 J9 W; j- o# K+ G0 @2 q3 j& i4 W# s
10.5.6 启动消费者程序 2443 f: R7 p W6 g1 j% [. c1 }
& x) [# R4 ], @# s: D5 L8 j10.5.7 发布JSON消息 245
2 Y! ~. y' n- c+ c( h- K& N7 Q0 }9 }0 [6 \* ?7 j7 K0 ^
10.5.8 使用JSON消息 245
' X p4 a* p% o0 w% V
Y+ R+ g1 O9 G9 o/ `/ D% g& w; Q10.5.9 清理并关闭Kafka 246. I; ]3 `5 x; u9 C# r8 z p+ d
/ q! H% C9 }' _$ I
10.6 Kafka的类库 247
9 ^- x0 ] r j* _9 h+ L8 }3 ?- T8 Q
10.7 端到端示例——MyConference中的演讲者提案 247+ `2 p' Z* f8 {1 [4 @: Z
; O% ~7 M8 m; x$ O
10.7.1 测试数据 247/ t. G0 [1 R! d1 Z* P* \
" K! _0 S) B; M( s. g% e7 s10.7.2 架构中的组件 249
! U( s+ S" l i8 f- O
' m3 K& _9 t+ W. W9 ~4 b# v10.7.3 配置Kafka环境 250
( f: I6 K/ v: ]. @5 r: k7 r- W: b7 ?/ V
10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 251
, I0 C6 {: B; O4 K% v3 ]- u$ g# @) {/ n
10.7.5 配置Node.js项目环境 251& i3 I: T @, {
% s7 Q4 ~6 K8 C n10.7.6 演讲提案生成程序(用于发送演讲提案) 2521 C7 R+ C; z! d; m
( j2 c7 s" z: t8 w W: ]
10.7.7 提案审核程序(消息的消费者和生产者) 252/ `8 S1 n# o5 ?
+ F7 m( w. K: ?# F5 K& E& s10.7.8 演讲者提醒程序(消息的消费者) 257# O- S- ]- l* }( [5 b) A; X& G' |
4 O9 q- L. Q) P: x( O
10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 260$ \* H- o, \. j- e
: p0 A" a( ]8 ?# z+ K9 L U. y3 A
10.8 本章回顾 2620 P1 h" _: T; ~8 Z
- V8 f3 a# l! z: G, P; V
附录 A 安装指南 263
: X7 @% w' [, X n6 H
/ e: {) t# Y1 V; p附录 B JSON社区 277
# n1 Y- W8 A- y* u9 Q F6 r2 b4 I5 \, Y+ D' L4 w1 a
关于作者 2788 s" q& | V5 x' J3 }
; h0 L* ?5 n2 y; t. _) w, U# _
关于封面 2785 k$ Q( Q. N* A4 Y# u: y- h
& x; D1 b3 K9 [6 }: F
Java资料百度网盘下载地址链接(百度云):java自学网(javazx.com) JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557 PDF 高清 电子书 百度云.rar【密码回帖可见】# k: S; a; W/ z! d, }8 M
7 q7 S d5 B% H% G
, h# M# n+ t5 Q/ O
: X, e/ ^' V. P2 O5 F* D( R; i: `7 G" N; j, a
|
|