TA的每日心情 | 开心 2018-4-8 22:14 |
---|
签到天数: 1 天 [LV.1]初学乍练
普通会员
- 积分
- 5517
|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557》
( [1 M0 }/ o @/ r, Wjava电子书推荐理由: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消息
# t, h7 N$ j' {% V$ A) }9 L5 L, L
作者:汤姆马尔斯 Marrs
' w# F/ S: b( i8 i) S: {/ R出版社:人民邮电出版社# f B2 S6 E! ^& A' f7 G
出版时间:2018-07-01 : r; t( |! X$ C: l; V& L
书籍价格:65.00元" B9 J: E" U2 i1 ^; w+ f
( E- w% Q3 Q# a) F
& B2 H+ P% o# l% L
' `. r* E) V5 G: h" G2 N* z
5 z2 o t, b. f) o- A$ sjava电子书目录:
( {2 ]' D1 m6 @& N U( W7 H9 M# O第 1 章 JSON概述 36 D# I2 D0 K# }! P7 I
( s% ^1 y4 P s% `- T7 L8 h
1.1 JSON是一项技术标准 3
3 k7 |7 {6 ^+ h7 L$ q5 X I" U& W6 d R
1.2 示例 4
2 [- G; e, t) h' }, g; m6 Z* J7 x! r. z" @0 F
1.3 为什么使用JSON 5
1 u- v @& K- K% q* {" a/ M
* U& n4 n5 v2 ]: Y U1.4 JSON的核心概念 64 U9 ~ t0 Y: l6 Q! X+ h
: L2 M4 S* r9 z
1.4.1 JSON数据类型 75 J1 ]& {/ c8 }
. V: y" T2 c$ w) K
1.4.2 JSON值类型 9
' A* g, c- w! Y1 M+ o: Z0 l5 M* j5 p+ W# C# ~
1.4.3 JSON的版本 11
8 q0 b! z: `' m- r1 y
6 }/ K f, [$ s2 M& V1.4.4 JSON中的注释 12
$ C7 X( m5 }9 `7 L$ f X
9 [: N, w" l: `/ s1.4.5 JSON文件及MIME类型 12) g0 F9 A, F, y$ d8 w
2 K1 w" }4 V% b8 b/ I
1.4.6 JSON编码规范 12. d# B& P+ `) @
) i5 {7 x$ E, ?
1.5 本书示例:MyConference 14
. \) x {! g9 ^: ]
4 s' k& E3 U- M* x* }5 L% `$ v x1.5.1 本书技术栈 14
d0 z+ k' n9 Y& `' i5 P$ m
# Y$ W7 ^& v& R1.5.2 本书架构风格:noBackend 14
7 z8 x+ j% y& e% u- ?# \. ?
- p$ R# {' z( @1.5.3 用JSON Editor Online对JSON数据进行建模 15
e! Y [# y3 v3 a; N/ }2 \/ x: v5 E0 D
1.5.4 用JSON Generator生成示例数据 162 d% A! d9 H( \" o2 [& A" Q7 V/ d
2 X. P, c* a/ |) X- H% X+ O* ?& b1.5.5 创建并部署模拟API 16
& X) U8 k- R* N% l+ @" f7 Y2 v7 G: \3 ~# w O J" w0 g
1.6 本章回顾 19$ k& s. k+ Y- `) `6 W7 b/ i
L/ w7 E2 A; F; W, A: B3 U) n+ Z
1.7 内容预告 19
}2 P# v8 ~+ Z% r6 }3 }
9 E x5 h8 R- e9 Z! R c7 u; x第 2 章 在JavaScript中使用JSON 20
1 ^+ F/ E* B( s; D. U3 g$ S/ g2 v. y* Q$ {4 P# F9 ?
2.1 安装Node.js 20
% f- A9 r O3 P; F% i6 r4 ?% Q n( c5 [' W4 H( r Z+ U/ O
2.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 21 |$ @6 u: w e; G: s5 B$ ?* `
4 {3 \6 |% K! r9 |- N% G2.2.1 用于stringify/parse操作的“JSON”对象 21# n8 ~; g% e, Z3 n
% F' g! F/ @& ~/ K5 u% Y, v
2.2.2 JavaScript中简单数据类型的JSON序列化操作 21
. }% h4 x; U, H9 E8 g; Q# @# }9 I# I/ y* w
2.2.3 使用toJSON()进行对象的序列化操作 23
) q* G ]; Z) Y6 I! B. ~, ^
, d( v: J! [/ g" i) O2.2.4 使用eval()进行JSON的反序列化操作 24
3 k& j4 [0 v7 n$ Y. _3 I+ h
8 I# P$ Z; y0 H8 ^1 t/ \* o" b2.2.5 使用JSON.parse()进行JSON的反序列化操作 25" o/ q& p/ Y) h
: `$ |5 e T+ S1 H& H
2.3 JavaScript对象和JSON 264 C* W: _' u( W* K+ C
2 R8 @5 x$ J# v4 @2.3.1 Node REPL 269 a, T. p' b( M9 Q
$ f. A3 a. z5 d1 U
2.3.2 有关JavaScript对象的更多学习资料 28" p" z, e; d0 R
) w7 o5 Y2 \5 T3 A5 d. Y2.4 用模拟API进行单元测试 28+ \5 O8 v8 e* q, N$ l
+ }% [5 `/ J' c+ C6 C2.4.1 单元测试风格——TDD和BDD 28- d6 x/ W/ R! B; T. H* v
$ V8 t1 T, v/ O2.4.2 使用Mocha和Chai即可完成单元测试 29 {- m$ w0 C9 P3 x H+ u
p) O" O8 g$ b9 m9 v9 j4 _2.4.3 设置单元测试环境 29
# }6 o7 P; q$ F+ r9 M2 [
5 k* s2 n+ y. Z; D1 y; I, _3 W' W$ k2.4.4 Unirest 29. a# @4 {- ]$ X) w9 y
3 R( L$ u! t6 X9 c8 A" k* p* X/ P2.4.5 测试数据 30% p% ^. ~ M* O- s( i! B
' @5 w4 D- X {, l' p1 K: n2.4.6 对演讲者数据进行单元测试 301 l7 J3 n: j" ^" `) D
, D2 b- r |2 `; g2.5 搭建小型Web应用程序 317 K4 x, J* g+ p: W0 P u
: _) ^3 } I! b' f5 x6 O1 E2.5.1 Yeoman 32
4 e2 t, N3 j ?* V" k% M- Z! l6 s& E( ~$ [
2.5.2 第 1 阶段:使用Yeoman生成Web应用程序 33
# w- v4 D* ?/ L7 a3 G+ W) a
8 F; {7 L; C' Z" r8 H: j' R2.5.3 第 2 阶段:使用jQuery发起HTTP请求 36
7 i# A j; d3 u2 ^9 I4 a" ?2 e' F5 S' ]! v" Z/ G* t7 J/ z Z; q
2.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 40: V* s: m$ h0 V: [0 Z
1 G8 r0 W5 A7 g: g& g+ z) T
2.6 如何继续深入学习JavaScript 44
' j* P3 E6 M$ W; ~5 a$ I
" U+ _* E# n- f/ [# x2 H. W! {2.7 本章回顾 45" I: {, F9 X* p' Z5 _- m6 C
, u" H9 p- ?* P m, I( w; ?4 v2.8 内容预告 45
& u1 q7 W, B4 Q0 P1 Q- ?5 B, Q q* n8 [' b- B! ?: ]6 t
第 3 章 在Ruby on Rails中使用JSON 46& `+ f' b1 v! i* N1 O2 g8 |
4 N! `/ g. m# v- F
3.1 安装Ruby on Rails 465 w1 @' ?6 V( {6 b
% c* k" M9 C6 x& p+ Q5 I% x6 h+ i3.2 Ruby中与JSON有关的gem包 46
- r3 x; Y" e/ b2 { {+ ^) G. W' g# l' v+ B8 {* J
3.3 用MultiJson进行序列化 / 反序列化操作 479 W5 R k* ]4 \9 M2 q4 w
+ v, y3 }# G1 n" b9 j1 W
3.3.1 MultiJson对象 47% V, V% _* t; o! M
9 R- X! m1 Y# ~7 ]+ i1 Y3.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 48! F) U: V2 w. `5 b8 s7 F% ^) s
4 K& n0 F5 \; j. z: M! V. Q7 l& U1 T3.3.3 用MultiJson进行JSON反序列化操作 50
2 W1 Y. ^! S% K- Z0 \; Z
7 q0 C5 ?. L/ W/ I& ]. L3.3.4 关于JSON和驼峰式命名 52
3 W; R" s, C3 Z9 T+ ?# u2 O" a" A# a8 g/ j/ N# E9 ^ L5 j
3.3.5 用ActiveSupport进行JSON序列化操作 52. t) |( M9 ^$ ]4 ?; b+ {
6 R" {& |4 t- A( W9 h* @) G3.3.6 用ActiveSupport进行JSON反序列化操作 53& M* F4 M6 z) |2 n, d0 i
4 V4 q" y# a4 b( I* D, s! j
3.4 用模拟API进行单元测试 54. x- G' x2 O: f1 l7 N# K4 I
4 B, v7 [5 z* `9 A1 a S
3.4.1 使用Minitest即可完成单元测试 54& y: D( {: L, n9 }/ b
1 _8 [! I# j& e3.4.2 设置单元测试环境 55
% T: Q) j' j# A4 R2 _
# I3 X5 r5 |3 f+ J" q3.4.3 测试数据 55
6 `+ u- V. U9 x7 c" J h5 g8 H
3.4.4 用Minitest测试API所提供的JSON 556 V2 ~& ?0 f" [4 K8 `
X: C. R, ?6 g" J- [& O4 \4 ]3.4.5 对演讲者数据的单元测试 55; o7 B* @+ b# W [6 K* @1 L( U3 O
8 t) d; W) i3 o/ [. O% H3.4.6 有关Ruby和Minitest的更多学习资料 597 E8 x# Y& w& R+ l1 Y- B V# R
; z9 i, J1 z# Q3.4.7 似乎少了点什么 59+ b% l( o3 f3 i& U' [ A
% X& ^8 o8 U- S/ } C+ `* H/ y7 @3.5 用Ruby on Rails搭建小型Web API 595 E: g! Y. j& L3 f
, s5 ?% ~" K( l) p0 b. ?3.5.1 选择JSON序列化工具 60
% H) K; ?; K) c. `. n! }8 U2 P* a
3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 61- p- C0 V8 l# U% \. o" `) E
8 z2 f, C9 R1 V' w! ]0 f5 N0 _3.5.3 speakers-api-2——创建API以提供自定义风格的JSON 67- q6 @! [9 g5 ^$ K! G/ X6 y$ ^
) G. `4 e6 \ E0 C" j* S
3.5.4 有关Rails和Rails API的更多学习资料 68
1 d9 `1 v- _5 H+ p
$ D1 r* J1 ]. Z3.6 本章回顾 69
; F4 N9 P$ Z. e8 f
1 V3 Z6 f; f' n, `3.7 内容预告 692 P* I B# m9 Z7 N
/ H# L; ?* F( Z' T r第 4 章 在Java中使用JSON 70( O- W% O' p+ Z% `+ T& Y: p5 E( R
% ]( D1 ?: ?. C, ~$ t8 L4.1 安装Java和Gradle 708 `$ Y/ q1 h) I3 O
1 T: h- E3 T- P4 ~( A2 P/ S4.2 Gradle概览 70
( c" S6 C5 V+ ~
1 |7 q9 f, A/ {" P) I3 Q4.3 使用JUnit即可完成单元测试 72
- d2 e1 J0 ~" Z% A9 [6 z
/ A, a; q& q! F* ^, B9 c4.4 Java中的JSON类库 72
, A/ p* A1 B& N9 H2 O- _% m1 N& y0 O, c: x/ W* B
4.5 用Jackson进行JSON序列化 / 反序列化操作 73
7 K0 M" D9 S0 X( u R }' l: D7 B( d8 A* v6 ~
4.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 73+ N0 O8 d f8 Q/ b' L- q
7 o5 v5 ^ c/ h$ a& e" C5 _4 n8 @4 f2 Y
4.5.2 对Java对象进行序列化 / 反序列化操作 75
: u& o' I. J# A6 C4 V8 j& W* J( r% z6 T, ^( R
4.6 用模拟API进行单元测试 79
+ L) d& ^: R; P/ ^1 @7 F1 x
, ] b' ^$ W; ]4.6.1 测试数据 79
8 K, _. C7 B. W0 F% N) }0 p" q* @/ z( F
4.6.2 用JUnit对API提供的JSON进行测试 80
, V9 j/ B8 M2 `3 q9 ^0 D* L* V0 S6 D: d
4.7 用Spring Boot搭建小型Web API 83
! G( _+ x7 O0 {. \
4 Q- U+ m, d) r3 n9 q4.7.1 创建模型 84' q ]1 N" U6 n5 m2 V$ D* l7 W7 | g
e" B# n v q" o7 _5 a5 V- X1 ~4.7.2 创建控制器 85$ s7 H" h* l4 X7 A* ]- h2 ]
- ?3 o: m* T' S9 B
4.7.3 注册应用程序 87
3 h* g, T* C- Y+ `/ V/ _8 f$ M! J! Y, L$ a# C* {
4.7.4 编写构建脚本 87
4 R2 D2 K; M2 F U- \( r4 h
+ e5 J6 c. M b8 m' z4 s) m9 z4.7.5 部署API 89+ d' @5 |4 K8 z G) l; X* Y. Q6 B
0 B2 `. f, L0 e2 _ h# G# S4.7.6 用Postman测试API 89
' y- J% R1 Y% H: C& @% H) w/ b, A: J$ Q$ D. d/ }1 |
4.8 本章回顾 90
* z% s0 x6 c7 G" U* G3 G. s6 ~' K
4.9 内容预告 90
. b2 A2 K. Q) B& H" I8 G( Q) d9 G: A1 l: q. K" d3 [# @% }+ s) p8 g& S
D二部分 JSON生态系统
- N- m( D# x; K3 c$ \# D( L6 W1 G; h8 Q: I1 F& u" v/ n3 |2 W
第 5 章 JSON Schema 93' ]- p0 ~* F4 F
6 ~7 g2 x8 {# A: x9 K0 ?; n! F' o
5.1 JSON Schema概览 93
0 F7 M( W! q9 q3 a) r5 Q/ B
3 Y' A" e3 t; B0 N# q' J6 }5.1.1 JSON Schema是什么 93, [7 @4 R- V+ }6 m; r
* B" \) a& x7 N& d* I b5.1.2 语法校验与语义校验 94
3 _ k# c8 r! i% o, h4 Z
* T" p8 Z, A0 v+ r5.1.3 简单示例 94
0 L+ o& K0 e9 I0 ?7 _, i q
) V! {4 L3 D% y4 i# ~5.1.4 Web上的JSON Schema资源 955 ^; L5 H; _+ G4 U
/ T% |5 U! C/ K- G# I4 o
5.1.5 为什么使用JSON Schema 96
8 J4 z& z: Y" m$ L8 _& y v% k3 Q+ L
5.1.6 我在JSON Schema上的经历 97% k1 E3 V% {$ U+ j. r0 o
4 t% D* ^4 e3 W/ G# Y' r( M5.1.7 JSON Schema标准的现状 97/ l5 D/ U2 _3 {1 c* e
, A2 r7 D' N: p5.1.8 JSON Schema与XML Schema 97
+ c* R3 ^, s1 `: M6 U2 n3 q8 e) ~/ H6 _* f w* a3 K% ^
5.2 JSON Schema核心——基础知识与工具 97( _# H4 \9 d. j) J) ~, ?+ \
" X7 w6 |7 w, b" c- l5.2.1 JSON Schema工作流与工具 97# O* z$ Q/ O( V( @
, n1 g' h1 F$ L i6 Z5 n" X* b
5.2.2 核心关键词 100' i3 I0 E+ x1 F1 h) k4 u
4 j" C& C8 w1 J& O
5.2.3 基础类型 100( o% J/ _- Q, w' M" ^
$ s) V; c* d- m$ c( \: @5 r( W
5.2.4 数值 1036 D) H x" z8 K2 }, \/ B- ]
) m9 }. }' ^: @) U- Q p9 k/ m5.2.5 数组 1047 ^- |% c& g+ Q4 s2 _, B4 q% N
/ G3 d* f6 w, x7 [5 X6 W9 {/ p1 x
5.2.6 枚举值 1062 |5 }8 `' C, y4 T
" }! i! W' c% \) F
5.2.7 对象 107: F$ q4 \9 z' v$ T# }
, h3 E: p8 C! c* Y- l( M7 V
5.2.8 模式属性 108. z0 W* Q" r7 d v
/ Z8 l+ R3 s7 L$ W$ a- g: P) N5.2.9 正则表达式 1102 N- b, e" s; W# R, q
7 v- L4 ?" J0 l% J5.2.10 依赖属性 111+ G" X% P3 |, ^! T& ~
& I; k [0 v# n$ z0 {5 q
5.2.11 内部引用 113' g, r7 o/ \4 T/ {
! X! x1 O* ~. m# @7 n
5.2.12 外部引用 114
7 Z) l: { C" k; f: g" b1 @$ P7 i1 I6 N, ? ]/ I% A
5.2.13 选择校验规则 117
& j- N! h; @% g2 A4 y6 m) j
4 ]* P" i% f& ?" ]* N5 X& v5.3 如何使用JSON Schema设计和测试API 121
7 {8 ?# n8 B- [+ e( _: X! @+ B" N# Q! M1 D) l
5.3.1 应用场景 121. J+ J% y% [7 ~2 M- T7 n6 d
$ Y. g- d& R7 q- d7 n5.3.2 JSON文档建模 121
5 \( }. j+ \$ I* ]2 i; I* J
5 L" `0 J7 a; P7 n5.3.3 生成JSON Schema 122
! F4 ?8 P0 T {8 d" c+ X0 i2 T1 F. R$ J9 F+ Z1 g# l7 n' k, a, d; |3 M
5.3.4 校验JSON文档 125, A4 f* j) B X& q3 x+ i& y
# X: e2 Y4 }- B* m7 R3 i5 U" [) v5.3.5 生成示例数据 126
# f' W6 b7 {' _2 |1 ?5 b+ s6 `6 C& R; L1 _+ c) n
5.3.6 用json-server部署模拟API 129
* B* p. }& ?% M3 d
o+ L# z6 k* z+ d5.3.7 关于用JSON Schema设计和测试API的一些思考 130
! |. W$ ]2 X" A% w) `# J/ J+ M! f( ]8 x9 m+ Q
5.4 使用JSON Schema类库进行校验 130
- H+ X! [( W! M) x1 F! C; y% D# J0 ^% w! ^
5.5 如何继续深入学习JSON Schema 131, {- {* ~7 B9 d6 `
6 G- L6 M% y; Z: s
5.6 本章回顾 131
( I! u3 m# c! o( ~7 Y' ^
. L: P( z) k3 B p: e, a. b5.7 内容预告 131) \" C. C/ d* a% D9 ~: x
0 ^! M% M# [% E7 i, X* M) U
第 6 章 在JSON中进行搜索 132( n8 m+ E4 I% D4 e1 i
5 s! J$ f# G( q% \; T6.1 为什么要在JSON中进行搜索 132; ?; z* l, q5 r, ?
$ N9 T: t4 W8 G4 t' d6.2 JSON搜索类库和工具 132
% Z3 s* A _* N' e5 e
. q4 S; q% k: W) a6 {6.2.1 其他you秀工具 133& ]* G: ]; i( j8 A. n8 Z$ m6 c
1 v) n3 s8 G/ v* p1 z! r$ d) p
6.2.2 选择工具的标准 133- t. E3 A, q5 U* m5 F5 y
0 o7 g6 d' [6 K" l
6.3 测试数据 1348 \% P! X# \( t' e
) x# o9 I4 N" t5 n, j6.4 设置单元测试环境 135: d" p' G+ g; z9 T' W9 v
4 I+ j: C7 [- t* \' H
6.5 比较JSON搜索类库和工具 136 I* q% o/ Y, g6 S4 v
: z2 d3 `8 g6 @/ o6.5.1 JSONPath 136& M7 F( C( e! M. y7 G
6 D. N* v( s6 X5 O6.5.2 JSON Pointer 141$ ?1 L9 R3 i0 A; J: Y6 [
( @( b1 \% R/ B4 U! K+ J6.5.3 jq 145
6 U) y; Q) j3 s/ w, y; |0 F' y: a* |6 k
6.6 搜索工具评估——总结概要 154
9 W- C* [0 B" p' ^7 W. L4 V) u) N
6.7 本章回顾 155
' g q# Z, l! E; {2 N* v: F5 j. A5 g* R
6.8 内容预告 1559 G$ W6 z3 q8 f' T) }
8 n" B& ]0 W% G! g0 g
第 7 章 JSON转换 156
0 S4 ?; a4 I9 _* ?% U
s& K- V5 A/ H3 F# P- Z7.1 JSON转换类型 1564 L3 l+ c; C# u
: H2 [7 S/ E& u7 ]7 a
7.2 选择JSON转换类库的标准 1573 C# c- Q1 x* x) ]6 Q) p5 x
! v* J7 y. u9 }7 R
7.3 测试输入数据 157
% \9 ^+ Q' Q& j' Q! M, Y' x7 r5 } E J5 \0 S9 b. C3 G) Z
7.4 将JSON转换为HTML 159
4 n3 {4 f8 k; P3 m& x. p7 m$ o1 ^0 ~9 G. e
7.4.1 目标HTML文档 159
% @2 W! I) f4 b2 a4 [
& l" g. {7 C. b& g6 H+ q6 S. d: U% H7.4.2 Mustache 160' U- R6 g; h i% P2 {
* z# A+ q- P3 v/ U* B7.4.3 Handlebars 1652 i2 k, t7 M1 u8 ]" ^! d5 n$ F
4 z+ D9 q4 `: ^
7.4.4 转换工具评估——总结概要 1707 i( T& `+ d2 ~& T5 b( k
{: p6 w( B! N( n$ x: c% ]% s. o! \4 U7.5 JSON格式转换 170% | U. }, c0 Q8 _% X7 s D
6 ^( P: M# C! M* U# J! P# c$ x7.5.1 存在的问题 170
( P% A2 x; l4 G' Q( O
- V3 N" r) R! |; g1 O6 D3 Z) k1 Z5 w7.5.2 JSON格式转换类库 170+ q! i- U/ I S0 D O3 i. C; m
2 W z2 z) C) V8 X5 o0 c) T7.5.3 其他you秀工具 171
5 X: H5 ~9 ]4 p1 o7 G" y
( g& Q K! W- C9 n+ F, [7.5.4 目标JSON输出 171
1 q: ~$ |; G' W( w
7 e, q* X' X, {7 l0 t0 m7.5.5 JSON Patch 1729 H5 H! C K% z
! `3 ?" |1 ]0 m. q0 `5 q) `$ o7.5.6 JSON-T 177
- O. w/ V; `- e' D5 j" n9 W- {' a) x9 |3 ~* c6 g
7.5.7 Mustache 180
2 |# I7 N& B) Y: }$ S- I
: B+ Y& ?. j& h" }' u0 n' V7.5.8 Handlebars 182
* O: {* D$ T5 A4 Q% p5 l* x7 F. i- R1 `8 M5 G& R {
7.5.9 转换工具评估——总结概要 184
w$ P: u5 q: W0 U
# F4 @ A+ {7 }) H% U7 H8 I2 y8 I7.6 JSON与XML的相互转换 185
& W# B d) O" ]5 A4 c* M6 G+ |% E6 \2 _9 M: k. _0 I
7.6.1 传统转换工具 185$ }/ a5 }9 P+ P( L
7 ~+ f2 L) V$ K5 D* _$ S C) K( ~7.6.2 传统转换工具所面对的问题 193
9 K' f' f+ s" A1 L/ {% G2 J6 G8 E' }
7.6.3 XML-JSON相互转换——总结概要 193& S+ E& ^+ S# A8 g6 ]0 W
/ s& U$ j p7 K' H/ [/ _4 m7.6.4 JSON-XML相互转换——单元测试 194) y4 U, n# F2 }9 H$ g, }: k
. I3 k5 M5 r: b" |5 V# n( j7.7 本章回顾 196
! x% [1 X: ?% v2 r! G) H7 j$ o
8 s5 Z6 ~7 ~3 \7.8 内容预告 196
# L3 M+ F; m2 _' L* l/ I( L$ [2 N0 }6 x y* T
第三部分 JSON的企业级应用; A, F( M1 p% G' l- E
0 f2 W) @( F' x M
第 8 章 JSON与超媒体 1997 A; ?5 Z: z+ m0 p
. ^8 p9 w+ d* I" ]8.1 超媒体格式对比 200" q4 X2 \9 F% M& }1 G7 k1 r* I
* J/ Z* `# m% [4 r# F* E4 L6 I) |
8.1.1 定义关键词 201/ I3 q4 x8 T1 U5 |4 @' v- v2 @8 h
" e* E# N* Q9 M& L
8.1.2 关于超媒体的个人看法 201
7 K: V }. ?* p( Z* Z% H3 ^& d+ e# Z) |* D! C: R* ]
8.1.3 Siren 202
/ i* Q- [$ a( h4 }9 y
- _. ?+ l" W- a) r* m4 ]3 N8.1.4 JSON-LD 203
( g$ t0 m/ j+ D4 N) L& V; V) z0 B8 l
8.1.5 Collection JSON 207
- G+ G8 K3 c3 G0 O* b' ]: R* B& @ ^* T& N8 V f
8.1.6 json:api 208
* W5 n: Q5 r7 y* a! [: u$ G6 N6 G+ U" v7 m' i! H& z8 j
8.1.7 HAL 211' J1 E: y7 I: J0 {
1 q' e- K( a X- D ]( b; T8.2 结论 2154 o/ f' O+ z( L) _1 [6 ~! ?
" l7 o3 n8 {) F) a3 c8.3 建议 216, a- M7 `. j+ D/ j- z
: z# t5 }" q% H$ ? x9 v8.4 实际中遇到的问题 217
, R/ c, \2 w1 H' G5 C6 {; ~+ e6 L. e# A1 e3 p0 [& b
8.5 在演讲者数据API中用HAL进行测试 217# s2 j% q$ s- f. Q, }
& w% z; n8 C: m1 I# k( j8.5.1 测试数据 217
# C2 g$ R5 a# u3 h- s' n! A" @% |% `( {! t
8.5.2 HAL单元测试 219
2 o* s) u# y& n
6 t+ V1 g8 G, `" i8.6 在服务器端使用HAL 222& r q! J8 j8 I# w. s
) |6 j5 z& p! n8.7 深入学习超媒体 2234 M [5 O+ r5 X! p/ E; N' b( @* I
: v2 [/ p0 m2 r7 F
8.8 本章回顾 2237 g$ E: D( H5 w! V. J8 K) L
% g7 d+ x x2 j/ V+ p4 Y$ \, Q
8.9 内容预告 2236 H7 w$ L1 w! a
6 ]+ F: U* m* N; P8 M9 O8 r; s: l4 w第 9 章 JSON与MongoDB 224% c& k! a; y( h0 ]1 c
* i' |3 ?" a. o
9.1 关于BSON 224
, `- L8 T3 s6 U* K I$ g
+ K4 N. G9 S* O/ M; g$ r: C6 \9.2 安装MongoDB 225, i G- Y$ k: e0 J$ R" V% b' a
1 X4 @2 Z, W6 t* _ I9.3 MongoDB服务器及相关工具 225; x$ V9 d0 x0 _# f1 t
1 g# S) l+ S0 ~! ~9.4 MongoDB服务器 2259 C0 J, r# H6 x% d% @/ ?
; ?5 r$ L2 Q. X$ j9.5 将JSON导入MongoDB 226
% k! G, q8 I. b: m' D, B3 A; D! \ A/ a
9.6 MongoDB命令行 228
. M- }- O. y; c) H$ `! I5 e# h* }/ r1 v1 ~
9.7 从MongoDB中导出JSON文档 231
3 F$ N+ u& ?" [
. E1 Q: W: F. H" e9.8 关于Schema 233
* ~/ m% f4 ]! ~' T z; X* l' M0 E& K4 T/ Q' e
9.9 用MongoDB进行RESTful API测试 2348 C: v; R/ z$ }
- R2 ?; f* t( v$ [ S$ i2 F9.9.1 测试输入数据 2352 z0 ~% o& [" k# P5 c$ r* u0 m
% Q+ Q* c- i/ S: l: s
9.9.2 对MongoDB进行RESTful封装 235
3 P% F* T8 |: K; g: o7 h8 p5 C% V- i" S+ \
9.10 本章回顾 2378 a9 i% d7 w9 g! ^
. Y/ R! [ q$ `$ Y! q
9.11 内容预告 238$ _: A) h9 R) i1 A- w2 F, j. e0 J
: y5 I# W# Q$ \' A. c第 10 章 用Kafka实现JSON消息系统 239
4 K0 I7 [% `* |* j8 T F3 H" X; f$ `9 `! B# e, D) z2 j. o
10.1 Kafka的用例 2391 v7 k$ Y. j3 Q: o' Z" U
- d/ o; `5 j/ a9 X" j8 l10.2 Kafka中的概念和专有名词 240
3 K! L: c+ ~* W( f6 u9 r" }& H( J( m! b9 c. p: W
10.3 Kafka生态系统——相关项目 241- [' }( M. X) S/ ~4 Y# W8 I1 @
+ O1 ]9 b. B3 B
10.4 配置Kafka环境 241$ C+ ?$ A4 V5 b& m$ |" ?% {: B$ K
3 d# j" R% j( S10.5 Kafka命令行界面 242
6 J$ d3 L9 g9 K2 D: k! {( K% }
, }+ N5 B, y5 J1 ^10.5.1 如何用命令行界面发布JSON消息 242# i0 S) a8 {% I
! |# q8 x, d6 L! C10.5.2 启动ZooKeeper 243
9 s" O' A$ K" R" @ }, q5 E' x1 |; g1 n, E" K# g( r6 \2 ]- ~
10.5.3 启动Kafka 243: _5 Q$ r! H: S2 \3 Y
! B& r& m* f, T3 C
10.5.4 创建主题 243
0 R" _# q% P6 A( u
% a4 q1 ]% }3 W& R10.5.5 列举主题 244
! C5 X& O) f" m) U7 m) Q2 `1 y, ^) R1 _' B7 u" C# s+ I( B
10.5.6 启动消费者程序 244
) t$ K- q8 y- J& M% i: L$ v4 [6 C7 I8 B) h
10.5.7 发布JSON消息 2458 @; F6 s# y+ R" C& \$ j8 X( v0 M" _
; H" a2 j$ n+ i! s5 d# r
10.5.8 使用JSON消息 245
1 `8 n! w# M- h7 I0 q V D9 T- ] M3 _- E# F
10.5.9 清理并关闭Kafka 2464 o! w( k& P8 v4 Y. f( E
) Q4 }; f- Q; Z6 @7 {. V10.6 Kafka的类库 2474 U- e: e+ N$ z! x8 T( A. C
2 l$ U* Y' U% o+ O5 S9 x" x; J" r10.7 端到端示例——MyConference中的演讲者提案 247- j, v7 d7 @: n9 o0 w
b3 n' A, C) Q5 q& I10.7.1 测试数据 247
p. n; [4 L. ?" h t! x8 @! O
4 ] p4 ^0 x, t10.7.2 架构中的组件 249: N- t7 o" [6 M( b9 x2 _0 l
% {6 i& b y1 q) ]7 p: ^
10.7.3 配置Kafka环境 250- x8 X& P" h6 y6 B
% f0 R, ~4 i$ h! |5 H4 n" d _6 D
10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 251
" S4 ~ n7 |. \4 M! B" H( T% W+ k' T1 g4 {$ z/ V
10.7.5 配置Node.js项目环境 251
5 Y: M0 {% B* S: D7 X/ e) I( t2 K
10.7.6 演讲提案生成程序(用于发送演讲提案) 252$ J9 [( U7 D8 U1 m, F
, g- B* O: [) p: c' o# I1 p
10.7.7 提案审核程序(消息的消费者和生产者) 252
1 b; Q9 B" z+ b; v: o5 H, |
$ A. P! B7 n4 y+ B+ {1 v h10.7.8 演讲者提醒程序(消息的消费者) 257
- e2 \5 X5 N; Q
# Q" t& B9 u. v3 z* B; s10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 260
' a7 b/ X. F9 j' E D: x
) l' q7 X6 g: y: p5 n10.8 本章回顾 262
! ?7 I- s+ ^+ ^& @
$ I( {7 T' c6 ]2 _6 p( f+ a附录 A 安装指南 263
0 a( S& X" E" ^+ T2 K9 Y1 b
# F" _7 p9 @2 ~ a1 _4 ?: g- @) r附录 B JSON社区 2771 y }6 z" z z9 {* N9 \1 w5 o
1 u8 q9 O- a. h! H% `
关于作者 278; V* ~$ D+ \8 u3 k% D! ^
4 s/ K6 I/ J5 r% k; H. M2 z! Z `. U
关于封面 278
& e( s) z$ V" e4 R' f2 Q Y' g
$ k) M) u2 Y" n# ^2 R/ u+ C; z4 aJava资料百度网盘下载地址链接(百度云):java自学网(javazx.com) JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557 PDF 高清 电子书 百度云.rar【密码回帖可见】
" O2 b. x3 @, y( i8 ^" ?0 d0 C& M0 P, L( u" n
{ d8 q( W) V& G' q. B
( D* Z- U% p5 N9 p
! t* Y6 i# A2 X' j p' U4 T |
|