TA的每日心情 | 开心 2018-4-8 22:14 |
---|
签到天数: 1 天 [LV.1]初学乍练
普通会员
- 积分
- 5517
|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557》) Y2 k: i, t* Y* T/ t5 S! O
java电子书推荐理由: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消息3 n& ~5 l k) e4 v( q$ V, y
) l3 q* u6 H/ u& |4 [/ C作者:汤姆马尔斯 Marrs
+ o) l: v5 m- W, S! {- I出版社:人民邮电出版社; C# Y6 @3 X; v9 r
出版时间:2018-07-01
5 H7 V9 r# Q- R书籍价格:65.00元$ y! ^, ~$ G. Z, U* k
& t+ E" J& n' N! r; r1 R
0 T, W5 g8 b9 _) X/ V! p# E3 n1 E
^/ C' a w x& O* D3 Q/ x
" \+ U- ?" D% _9 ^8 djava电子书目录:
/ g" W; S% b& {0 Y) A9 \第 1 章 JSON概述 3# Q: b+ b5 H0 Z
& G6 k6 E7 L+ p% r' ~* o
1.1 JSON是一项技术标准 3( m1 p! Y$ e s7 I
$ {! W; A( O( r% r) U
1.2 示例 4
! {; c7 N/ X- z& a$ @ b$ A! n+ q; ^6 D
1.3 为什么使用JSON 5
9 `! d5 [+ B' Y8 w& Q. I& |( Y j. T# R) B+ U+ |9 P' i4 W
1.4 JSON的核心概念 6( k3 w n" X: Y+ _
( O6 R) Y3 M+ L. D2 h q1.4.1 JSON数据类型 7
- `8 a( _4 P& {0 ^
/ z# t& }, r( a+ Z1 }1.4.2 JSON值类型 9) c- U1 H- L- c8 ?! q
) f2 r- q7 H7 D4 g' A5 ]
1.4.3 JSON的版本 11; }! p8 X4 p3 O/ I
% t# g, P3 O/ @" T1 T4 ~) ]& `
1.4.4 JSON中的注释 12$ s4 i! b* O$ O _0 u
' k8 U0 O- u" R+ b+ h7 N
1.4.5 JSON文件及MIME类型 12
/ }; e% Z. p$ k& W/ x" e; {( k# c/ C2 Y$ [9 ^& d' s( r5 I m1 R
1.4.6 JSON编码规范 128 t5 g/ [# D4 O: k
s1 M% I5 P- \# Q) _ y/ G- P1.5 本书示例:MyConference 140 ?. s$ j# P3 ]0 A& G# U/ O
6 L! q5 W, c ]9 J/ c: v$ P: @% n1.5.1 本书技术栈 14! c& ^9 V" H5 E* B
$ w" c4 \! X6 C' o- @' m1.5.2 本书架构风格:noBackend 144 e" u, [- ?) f, t z( b8 o
0 S# u D6 c& G. @3 i1.5.3 用JSON Editor Online对JSON数据进行建模 15
; g. U( A& d0 m* `* A& m
* d" X$ X( W; U9 g3 n1 _1.5.4 用JSON Generator生成示例数据 16$ t$ T+ O% z1 K, K7 b
/ t' s* C y% s; Q R1 ^1.5.5 创建并部署模拟API 165 t6 K! \, i! {) _/ j, {+ S2 j
, H' @$ ] i' j. f7 w0 ]
1.6 本章回顾 19
1 j. l) k, i. B# a4 a% d" {# X0 l# K( r9 p/ O9 i# N) O
1.7 内容预告 19" e+ C3 V [1 N) [9 u% y
/ N/ U: n) X; F4 r# p4 e. N6 T+ |. U第 2 章 在JavaScript中使用JSON 207 { Z/ e9 T" G- v; f. G, R
# g- E3 S1 J1 u
2.1 安装Node.js 20
0 F2 P2 l; D) D# A% ]" m! |! Y' o; @9 a+ b; @1 G& \- }
2.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 21
. r& K& b" @1 Y& \, {" ^$ I0 J+ Z2 z2 A! E
2.2.1 用于stringify/parse操作的“JSON”对象 21+ k( } S. |- {+ i/ F
* |9 e7 F# T5 k) c$ o# O
2.2.2 JavaScript中简单数据类型的JSON序列化操作 21
5 V- z$ L# m# d* H
! L- Y. w) [ S# v' L% D; r% m t2.2.3 使用toJSON()进行对象的序列化操作 23
* Z6 v0 a. @$ ^8 g6 ~7 [" l2 `& {6 R7 H
2.2.4 使用eval()进行JSON的反序列化操作 24* T/ n% v3 R+ X3 f) ~2 y- _8 j( W
4 @/ E0 z, x, F5 B7 V' u4 X# n! j, M2.2.5 使用JSON.parse()进行JSON的反序列化操作 25
$ S% s4 n( O" G6 c" R/ ]/ t% S2 s9 j
2.3 JavaScript对象和JSON 26
$ `2 I8 \6 s6 b# ~- m0 d. P: [ n: ^. o: ^2 g) z" u
2.3.1 Node REPL 26
( ]/ }0 A* V4 Q/ R- W1 X7 Y/ l8 {9 p3 J7 K0 e! K
2.3.2 有关JavaScript对象的更多学习资料 28
3 U( c% Y7 |: h# U. E+ }, ]# }/ w. P4 I3 W6 r# v0 ~3 I
2.4 用模拟API进行单元测试 282 f: v# m5 ?, A- E
+ H$ }$ e; {, Z' h2 V/ f# F
2.4.1 单元测试风格——TDD和BDD 28
( v( E( _6 R0 g" e' j
. E: @2 ~# g7 Q, C( w( M' K2.4.2 使用Mocha和Chai即可完成单元测试 29! R7 u: T, U0 [# }, R( q! b
0 u4 X! [& L$ z2.4.3 设置单元测试环境 29. |$ ?* K3 W, Q" _
2 l5 y$ M3 y4 B& x2.4.4 Unirest 29) b- d( H/ U* [- x
% m5 L+ @/ F& l( {( _' k1 q
2.4.5 测试数据 30+ _$ O5 D4 W6 J8 V: u- _$ D; X
& h$ ^9 X# _) X! T/ X ~
2.4.6 对演讲者数据进行单元测试 30
/ Q$ b x# K# ]7 A1 b
n Z$ P+ |) U2.5 搭建小型Web应用程序 31' V( o7 X. S" Q0 a) m1 {
' U+ c! ^& I' L1 ]2.5.1 Yeoman 32
& O0 _& h [2 ^9 N' P$ ?7 {4 ?
2 a9 Y, U L: y. s2.5.2 第 1 阶段:使用Yeoman生成Web应用程序 332 t6 A% ^/ s! `+ h3 c f; M$ t& b
, c% H( D3 T) _) \
2.5.3 第 2 阶段:使用jQuery发起HTTP请求 364 X+ N! O$ r3 ?/ s4 ?. n
* n% O# B1 X* F
2.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 40" u' [# j3 b; x) u, i
$ u. ?- {2 d. _, z9 O7 u: h" ?
2.6 如何继续深入学习JavaScript 44
* M, [( K1 ^5 W% S/ Z1 J8 o
* k5 y! ~' B8 g4 I- b: ^2.7 本章回顾 450 B, [ h8 Y T7 P0 w6 U" W
- V. M1 u% K; Q- P) G2 e1 h
2.8 内容预告 45
H8 V; a% z# `% U0 B' i, J0 f# X/ I8 _* Q( g; F1 D
第 3 章 在Ruby on Rails中使用JSON 46
9 b( _4 h7 `) [. G6 [+ q% h) Y
% e/ l! _5 r6 N8 j8 {3.1 安装Ruby on Rails 46- ~/ g. p! Q$ e g3 ^3 n
/ e6 s! E. s' m/ `3.2 Ruby中与JSON有关的gem包 46
6 Z2 s7 K ~2 [6 Z% Z% f7 u" h
- a& Y" b- ^( Z+ K+ w& [/ b; ^% R! v3.3 用MultiJson进行序列化 / 反序列化操作 476 \7 l) u) w) P& h' N% r3 N0 k
( n+ q) |% U1 N% f6 C
3.3.1 MultiJson对象 47
1 h6 S" m( A- _- P
6 h( K6 w* S/ S: }5 a7 {3.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 48
7 q" P7 q" O) j& O u9 ~& ?: `& K+ z; _
3.3.3 用MultiJson进行JSON反序列化操作 50' q+ s6 {% [3 H G' [5 X( q1 ^
4 S) o( r) h& o: d7 g+ S. z& h
3.3.4 关于JSON和驼峰式命名 52& J0 Y& h3 ?. }2 `( d
. U1 D0 |0 |( ]! N* ^5 z) C3.3.5 用ActiveSupport进行JSON序列化操作 52
. q' `1 X* I2 V2 n1 E4 O8 t7 q) K' u0 g/ F% J5 b. [- d
3.3.6 用ActiveSupport进行JSON反序列化操作 53
/ ^" y- `; s# a3 Z* T$ V) |
# d6 \& A6 i! x+ J$ P0 p" g2 q3.4 用模拟API进行单元测试 54
: Z' j6 s) ^5 |' I" e' H
! n" w: c" }6 E6 F) O& R3.4.1 使用Minitest即可完成单元测试 54+ W$ T; m/ A$ I2 O: k8 u" Z
8 N9 t# i* O8 {/ w) G( g! C' l3.4.2 设置单元测试环境 55& ?) H+ i. H+ l
2 n5 V) B$ K" {3.4.3 测试数据 552 o5 w9 m- g% K7 A/ `9 @* u
6 I. R1 }+ Y1 ]3.4.4 用Minitest测试API所提供的JSON 557 V! f/ d+ M0 C# y& q/ `) R. L: M9 r
. H- f9 T* X! X1 h' T3.4.5 对演讲者数据的单元测试 55
+ }5 z$ w3 Z( E* r( B9 ~( D" R" k( b' }$ ^. N6 D1 P D# _
3.4.6 有关Ruby和Minitest的更多学习资料 59# \; U$ W) \' T9 W% i5 Z
p! b6 r" ]* w F [& {1 P+ Q; I" s8 F
3.4.7 似乎少了点什么 591 R# I3 g y( G* I
9 f5 y2 Z+ K' g; W; k7 Y W3.5 用Ruby on Rails搭建小型Web API 597 ~2 H$ h' P# A# ^- M9 B$ j& H* y
4 f8 y6 s3 V0 g$ V8 V7 n3.5.1 选择JSON序列化工具 607 B1 A- P* m! d' }; v
; E U: j1 s4 @2 P3 y3 S
3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 61. A! @1 K, G, A! a/ B
& K% r+ z+ A5 c, Q g3 |0 k( H
3.5.3 speakers-api-2——创建API以提供自定义风格的JSON 67$ R" t E8 Q. e' j, q& h3 t
: y$ o6 ^% H( F0 d- L5 v/ R% x3 q3.5.4 有关Rails和Rails API的更多学习资料 68
5 w5 K+ n8 Z: B& _6 d
7 A( s) i" B. z- p1 F* {3.6 本章回顾 69
# c& C5 K! h! O& j* k. C
6 I Z) w) h8 d3.7 内容预告 69, r2 R( {% e7 }! Z6 @5 q
/ z7 m2 `( S* f9 V第 4 章 在Java中使用JSON 70
# Q/ M7 h1 d, E+ o: p( W* I7 K/ v
! k d% Z9 ?, j, h4.1 安装Java和Gradle 70
5 N" C, f8 H- N1 O$ k7 c2 b; T5 v8 Q4 S
4.2 Gradle概览 70
# T$ |& C5 \9 }& j: e* c7 _1 a5 _8 l* {0 A
4.3 使用JUnit即可完成单元测试 72) R1 ]) P& e+ V/ [5 t7 B; p
! a2 D% N7 Y! [% \9 M# U4.4 Java中的JSON类库 72! N- x& W: z! Y* @+ r/ A! h2 c
: z) x" \6 U2 B7 Q& ~
4.5 用Jackson进行JSON序列化 / 反序列化操作 73
& y+ w% [* R- E7 J& a& V2 S8 Y. L" h6 \% P! f* A/ M) y/ L
4.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 73
. m+ s% ~3 @0 c2 {
; ^( X3 C: |3 q* A, \4.5.2 对Java对象进行序列化 / 反序列化操作 75
# i. I$ _8 z# V6 I, u& i3 u+ O* W2 U1 q& w% g) N0 u
4.6 用模拟API进行单元测试 797 \2 ?1 G! R+ E9 Z( Q: x
6 w4 C' u' E! J0 [
4.6.1 测试数据 79, C" N% }; D8 |# N
- M/ V6 W; H8 }# D4 n/ w5 b+ l
4.6.2 用JUnit对API提供的JSON进行测试 80
3 R5 ?2 U6 `# w K3 F( s9 E2 o
. E1 A9 W, D- G; S) [4.7 用Spring Boot搭建小型Web API 83+ C4 \3 y. i" L4 g" c, Q
* i' o6 L1 P0 m4 [' s2 ^4.7.1 创建模型 84( u @) z& W" A( Z0 A
( g8 E" N* Y7 ?/ K3 `/ @( G
4.7.2 创建控制器 85
$ n4 }; J1 ?+ R; D
' M1 I2 R7 X6 \9 _/ U5 S0 N5 F4.7.3 注册应用程序 87/ j8 G3 }7 \0 u3 r, z
5 O7 ] Q$ `0 O# n4.7.4 编写构建脚本 87
8 Z6 l3 D+ l O* v2 R( B' g6 q/ |2 F4 [7 _7 ^6 S2 k( h( S. z
4.7.5 部署API 89& B& `+ m* ]+ c! p7 N
' j7 s5 C. a2 e6 |3 ]1 v
4.7.6 用Postman测试API 89
1 P/ s- R2 A* f, [ s: g6 |- u$ F- A7 q* k
4.8 本章回顾 90
" Y4 L5 v) |5 N1 ^/ } a
; _) W' c) g' T: M+ g& b8 A$ B4.9 内容预告 90
, f2 n7 C8 I+ N, h
0 W5 j% R1 P _! ^. YD二部分 JSON生态系统
c; {9 M, i; I+ k; @" w9 O4 g
8 d+ ?# t$ K2 G- l第 5 章 JSON Schema 93
: i: ^: j, | S {% i
5 w, w5 z% m0 x) C, W# h5.1 JSON Schema概览 930 l# F7 E1 Z3 X) G1 d: ?8 J
# ?/ H) B5 f3 K2 J2 _! N" m3 L* n( j5.1.1 JSON Schema是什么 932 F8 c3 Y+ A7 _0 _1 m7 t0 ~
* a7 y; `1 v* @2 P" D% I, P% Y! O
5.1.2 语法校验与语义校验 94
0 G( Q/ x' J" r; X0 C
/ N! f+ X/ c- h7 K7 h) G& w5.1.3 简单示例 94
# k# W- c! `2 M
! x6 s- ^9 F, _$ Y3 f5.1.4 Web上的JSON Schema资源 95; k2 E1 l7 t1 ?( h% H$ ^2 @
6 w1 g% G2 L# o. i9 k1 A% i5.1.5 为什么使用JSON Schema 96+ Z: p$ z; g; h [$ L
8 Q) h; u- x& z+ x, @3 y# u5.1.6 我在JSON Schema上的经历 97
- y6 @' j8 W. p+ C' E2 ~, H! i# {' ~+ s# m, G2 O" A1 v# e
5.1.7 JSON Schema标准的现状 97
) R2 U* [8 ~& U# l( [3 u( u* ], J; p0 f6 z O3 q/ E
5.1.8 JSON Schema与XML Schema 97
: i! m! Y5 L/ p. d, s& E- ?. i8 p- I$ _$ A3 ?8 y* B7 Y6 J
5.2 JSON Schema核心——基础知识与工具 97
8 n* x5 T7 W5 W
% f7 W( |/ `0 b8 g5.2.1 JSON Schema工作流与工具 97
/ }7 O% }* X: G- o+ O' \/ g C3 d* e" Y
5.2.2 核心关键词 100
' V& d3 i5 c1 G1 K, [
: ~* {; g6 _4 }- K5.2.3 基础类型 1008 [( k4 h9 ]3 j( J* Q6 @ s
( P, G3 j( \! p2 q. v5.2.4 数值 103# |: V+ x6 O% L) }7 k
) g' z0 y, |7 {& U! J5.2.5 数组 104
5 ~, O3 R& \' T3 {2 b0 e1 M0 i
! y1 j5 n# K% {% q6 w5.2.6 枚举值 106* V5 g* x, i. d. O6 a# F! Q
0 v5 y9 x/ k ?+ R+ [+ `
5.2.7 对象 107, q: [% k& T" }* X4 D2 j, f+ \6 ?
; d/ }% W$ i. f- t& ]. l' `, y1 k& }
5.2.8 模式属性 108
2 g- i8 P8 D/ H3 W+ I
9 Y* L7 v# l+ L9 E( H8 W2 ^1 E. N5.2.9 正则表达式 1103 B7 ^# b1 l4 h1 w
/ p2 q- k- x) Q. F5 [0 b
5.2.10 依赖属性 1112 x- G! {1 E+ U1 y3 w
0 I5 Q" W, F( X( `" D( H: Z
5.2.11 内部引用 113
+ v- C. c- Z- g# n1 n& t, G" X- [" m7 J7 `& r4 l, O
5.2.12 外部引用 1144 N& A6 o0 e, p0 G
; O O1 R+ ]/ q1 r5 A4 S6 S5.2.13 选择校验规则 117* x; Q4 v {9 l$ X" ?# Q: m
# p' i! @: _9 d6 r1 g5.3 如何使用JSON Schema设计和测试API 121- {: @5 t, h. r$ L4 i. r- d
7 E; u9 y5 f9 r5.3.1 应用场景 121
5 c' }% x" | q. }. U9 l% `3 q
5 V: o5 |3 `! N8 H3 W3 o% _5.3.2 JSON文档建模 121
6 U, K+ d1 ^. f& u3 X& [7 V
: n" I; V) ?" Z6 X" X5.3.3 生成JSON Schema 1220 L t: \$ Z* _# @6 [# S- J
$ Y' \5 X% w7 w4 N5.3.4 校验JSON文档 1259 j! y' P; T8 q1 l4 F
: [! F% a1 ]$ {# p5.3.5 生成示例数据 126
' g5 j4 j: u) v: N7 ^( H
: U; L4 r4 ~- X) C5.3.6 用json-server部署模拟API 129, u0 p7 W u ]9 U3 S# q
+ G+ ?- p5 V1 s$ ~
5.3.7 关于用JSON Schema设计和测试API的一些思考 130% g1 f" O' |2 _
8 l4 Z8 j, ^% Y) P; E6 I- M5 {4 D
5.4 使用JSON Schema类库进行校验 130* \2 n; G, E+ F
! T; x$ O1 i, [3 [; O# s i5.5 如何继续深入学习JSON Schema 131! P& {: X3 |4 j/ f; g
3 h( w" f$ y1 Z3 v8 R# U) j
5.6 本章回顾 131
3 U, c( Q7 Y1 [1 S6 D
5 @! L/ n R) P" T9 C7 M9 ?* E4 v2 ]5.7 内容预告 131% ~& x0 Q/ U7 {& K& @+ i8 J
* ]5 b$ u3 E2 {0 p' U& x第 6 章 在JSON中进行搜索 132
7 u5 V# {. a% \& _* \: |0 |* g/ ~, f( T" N( K8 D! x
6.1 为什么要在JSON中进行搜索 132. A ^. Q5 l" f" q- |7 ^3 t
; Y8 F! \+ F2 i! g# g
6.2 JSON搜索类库和工具 132
6 q: U v6 H \
! C% b" w+ f T, N, ?6.2.1 其他you秀工具 133
) O/ _1 i& _' |0 Z& z: v$ B6 w
' i) k5 X; L) @/ [( ^: N5 |% d6.2.2 选择工具的标准 133
. \" z) y) V& E9 ]4 o
3 f- P# |" d) |! g! b/ n6.3 测试数据 134# {# t0 }. y' w1 L- B7 {% q
+ U9 z8 p$ D: @# N" x- U6.4 设置单元测试环境 135
0 z" F- z' z4 S6 I! K3 P
- Y) B) P& G8 F: e$ _- T( m6.5 比较JSON搜索类库和工具 136
/ e1 x& j4 P" T1 `
' D* h% U& Q% e7 H7 N4 c) ~1 ?) d6.5.1 JSONPath 136
" V1 X3 E3 z3 L3 g/ k9 s! S
- k; D2 `% t' |6 E/ Y6.5.2 JSON Pointer 1415 S" b$ H" k' \, Q3 ]8 W: @
]: L* e) F' j$ p! D( n; y7 T6.5.3 jq 145
; o0 @, l( N( u' C/ _, ~( m
+ g a( ]; f6 D9 ^" s# x! I6.6 搜索工具评估——总结概要 1544 I0 s* N% T" f/ O* b
1 m/ Z; P' N( I( n' ?7 |% e2 f% _9 L
6.7 本章回顾 155
0 i Z7 B5 t0 r z5 h3 Q8 O% x; T/ p; _& a7 e2 N
6.8 内容预告 155
3 \ R. ]* A) [2 f9 v h+ z& Z9 U @5 t9 K" F. k& p
第 7 章 JSON转换 156" B; \3 I5 g' N/ p4 O
0 ^" A- m% K& D0 s* k) F7.1 JSON转换类型 156
7 z9 l9 ^: \, h6 _7 y# G" f3 d9 n) [6 ]! s" @8 ~1 r. Y
7.2 选择JSON转换类库的标准 157
; Z- r& I2 ~- R6 f: b' I! Q- Z) I& t
' y$ c" y4 A& _% I) m7.3 测试输入数据 1574 C( X Y- i+ _, T" U
+ k' I- J" d' F* {1 `% ~7.4 将JSON转换为HTML 1593 f7 P2 k0 z- j: @5 J- ~8 e
% U* L5 n2 M8 E( ^ L7.4.1 目标HTML文档 1594 W. N( A. z+ P9 d3 Z! @
2 ^, q. Q! V3 K! l) t( y* ]! J
7.4.2 Mustache 160
" x6 \0 g: ]* \, a8 Y; K3 W9 F/ x1 U" a* y: P
7.4.3 Handlebars 165
) l) S0 q) o7 \; E) I/ b% }6 D2 b- f% W7 d+ b& M2 \
7.4.4 转换工具评估——总结概要 170
0 Y0 A8 u9 H! K l5 }' p% v. n- `" ?, U9 {( ]+ L6 p) ?- ?5 c
7.5 JSON格式转换 170
% J5 n9 m. e4 W. Y* i! D6 g g! x8 ^$ N/ [' I5 W, ?
7.5.1 存在的问题 1707 d6 g5 r( H8 j) \1 ~6 ?
E8 w: u4 u' B
7.5.2 JSON格式转换类库 170
2 S& |/ R9 P/ E
8 R2 ]( J% S7 ~% Q7.5.3 其他you秀工具 171
6 h/ {/ g( ^( Y; C/ ~2 W4 o
o. A1 R# e B3 P5 Y/ k; X7 ?0 {7.5.4 目标JSON输出 1719 c6 D& W9 O. q- z% x
, F6 g* E0 z- Z
7.5.5 JSON Patch 172) R- d+ m/ I7 u$ a
/ M& S* ^! {. T0 K* Z
7.5.6 JSON-T 177
- R( k( @ |, ~% W
/ C8 u" O% K: s: S, D7.5.7 Mustache 180) ^/ I0 C- B; y3 z
0 B2 j5 W T! m) h/ V5 W
7.5.8 Handlebars 1829 }# K# n5 L# w, r
' S+ ~* o1 c( X( Z* `
7.5.9 转换工具评估——总结概要 184: ]! I) c9 o& I8 P! w
. p+ D5 `! I7 D" H$ e
7.6 JSON与XML的相互转换 185
. ] }; _) r8 ]1 C+ C, C
/ ^$ x( _- L, R; b$ i5 G7.6.1 传统转换工具 1859 z& x! h, ^4 \
& d# F7 `- w n8 i u- l. L
7.6.2 传统转换工具所面对的问题 193
- G. Y6 p: C( N) T* P4 }$ E3 i
7 o4 P, E( y+ i6 x) P% d1 H7.6.3 XML-JSON相互转换——总结概要 193: r9 l, |% K) Y
' t" H& h( `0 u6 r3 Z4 w
7.6.4 JSON-XML相互转换——单元测试 194
: W' [) t5 a3 q: ^
' L, K9 R. M9 b7.7 本章回顾 1968 p8 A% L1 p& f- X
6 {6 j/ O+ H% a& o0 [6 G; Z7.8 内容预告 196! v5 T9 d) D; @' |
9 X% @2 R9 V" m* m+ Y( x, Z% c
第三部分 JSON的企业级应用; H2 Y, F* U3 u% h9 P
9 z' Z( @. }8 ]& L% Z- I0 C `- F7 Q
第 8 章 JSON与超媒体 199
# G4 o7 }% P. }9 }3 H$ }% X' n; Z& C. v& ^4 X8 ?
8.1 超媒体格式对比 200! F7 W% n* k, M1 \; t: \8 U
+ p) z! S- `4 n2 ?0 g9 B8.1.1 定义关键词 201
$ B- E5 o" C% x; ~3 \3 N0 U+ A8 _8 F7 w5 ]! Y
8.1.2 关于超媒体的个人看法 201) u& G+ i$ J& @# w$ ?6 g
& D" \4 S* w) t0 @& O! F
8.1.3 Siren 202
$ \" Z% N |, k0 V) f/ M) {: g) E% l! `/ Q
8.1.4 JSON-LD 203
8 K7 \8 `% F; U1 L" ?( Q9 f9 M( i" E; ~3 i& J% n/ N; r
8.1.5 Collection JSON 207
4 I) U4 c3 t3 V( Z+ R
/ O3 n9 ~& Q S" o8.1.6 json:api 208
% T: ~7 {2 L6 A- U5 X/ v0 Z2 ?7 p% R- N: I- x& q t% E4 p5 E( d
8.1.7 HAL 211 a' O6 C4 a, i1 |8 P# o3 W
1 @* v/ D0 j6 u+ A) R8.2 结论 2155 |- X5 j s4 |$ H
/ ] T/ m. f' O! Z* ~4 ^; C; @
8.3 建议 216
! ?) \7 [4 U# A- ?8 J- K1 W7 O2 u0 b0 R# T; }* k
8.4 实际中遇到的问题 217
( ~% w& A& ?& |
/ L2 z4 F1 ~" m) u8.5 在演讲者数据API中用HAL进行测试 217
# r; r$ E$ u# w/ B6 A$ b/ r7 S
5 b' Q# @+ t% T Z3 [: w3 t8.5.1 测试数据 217
! U, o4 T9 D4 \( s5 }5 m' H8 H8 q$ G" Q8 G6 K
8.5.2 HAL单元测试 219
; S0 U1 B6 m7 N* r
" w" T1 ^- q( j# J0 g }8.6 在服务器端使用HAL 222
- F! e1 k- l* p$ Z- ?9 ?
9 @) h8 J& `: {0 N( d& H o, D. v$ Q0 ^8.7 深入学习超媒体 223% z4 h8 u! r# d: x* ]
F/ `- E6 W# C) Q) F; k" r
8.8 本章回顾 223
& C! j; j! Q, N4 x1 ]9 R
- }( c1 ]1 v" C# [8.9 内容预告 223
2 {3 s* {5 u% D1 u0 d [- b1 I7 n% I7 H
第 9 章 JSON与MongoDB 224
4 k( C* P% z. ~. X0 w. s$ t9 Q7 h6 ?, Y+ L6 @- q
9.1 关于BSON 224, y- A0 G& _1 {. I
. v5 _7 d6 m( |- r, N9.2 安装MongoDB 2258 H4 H9 _" R m; t% M; W; P4 N
C1 Y' y& }6 |( Q" K9.3 MongoDB服务器及相关工具 225 u4 @: s+ O/ { Q9 a5 x/ m4 [
( b( g$ F- a% ~8 h3 j" F `2 v
9.4 MongoDB服务器 225
; R# Y4 I2 J% ]* X4 p4 v8 C
1 t2 m/ T5 W% ~9.5 将JSON导入MongoDB 226# p% A1 @+ C' j: m5 p
4 {( x( H& r1 L( b
9.6 MongoDB命令行 228( n1 u4 H2 \( ~4 f. C) f4 O
! B' e7 j; f& Q, o& ^
9.7 从MongoDB中导出JSON文档 231
4 N* I8 e3 e! w
5 |# C* X: d! B: ~% u2 \8 O9.8 关于Schema 233
8 Y# B0 C) v3 l& a) Y! @ `" b- \3 T. ~
9.9 用MongoDB进行RESTful API测试 2345 f6 v8 P4 R( L+ y0 N0 H& J+ O
3 _) [, u5 ^$ \3 d3 V# ]9.9.1 测试输入数据 235; E5 U# O, P3 I: S7 Z' ~
+ I4 w3 |* o- M
9.9.2 对MongoDB进行RESTful封装 235& j% p3 }. H: j; c% X3 h9 q8 Z6 f
$ ]1 z6 Y$ A2 h2 E0 n, e. D1 M2 s$ @
9.10 本章回顾 237
9 C N7 X& d1 U% a2 j" A/ i
* F( J r) f. t5 F! {- n# M; d9.11 内容预告 238
; `! D, A4 c$ T% P& W& E. }- k$ Z4 ?! R
第 10 章 用Kafka实现JSON消息系统 2395 p/ U: t( ?! u
1 S; M& m6 Y2 W ?6 O( t$ N/ z, b
10.1 Kafka的用例 239, [# D+ P" Z' O& t7 x$ v
, |1 u+ z, U. @% }; r
10.2 Kafka中的概念和专有名词 240. J+ O3 F7 Z9 {8 L7 j% g; T
( \9 b) S5 n( L- i+ z- N
10.3 Kafka生态系统——相关项目 241
' y8 F/ L4 s( y0 _. }
: @& D& X/ D" `* n10.4 配置Kafka环境 2416 O# r& [. k; F8 e! M
Q& X7 w1 D& i& O
10.5 Kafka命令行界面 242$ O9 j8 M+ ^$ s% t/ n: i5 i" L
: P* I6 a( U+ M1 N% o( ^, o/ m10.5.1 如何用命令行界面发布JSON消息 242
( {- P3 J1 e5 C- {
( u8 P" M7 d- a10.5.2 启动ZooKeeper 243
3 }/ {( Z' l m. g9 Q$ I
; \+ g0 W* g) P J10.5.3 启动Kafka 243
" I- l. C# T; O. L( i* _; Q0 R( u( D8 _; }9 b- V3 _, i1 C
10.5.4 创建主题 243
% }) A, T+ z, h* E5 ?( J6 R( S: r; p$ S3 ?0 l# w6 N! Y
10.5.5 列举主题 244( h: I( z5 `; k, Z( R
: E4 T& [0 S% x I% p
10.5.6 启动消费者程序 244$ Z" A( W4 H1 _, I; [5 q5 i% G6 [& T
( V5 i- r! |2 r) e2 E4 g o- f
10.5.7 发布JSON消息 245
9 M! E8 Q* u' s
$ N/ B$ I* n/ R* ?! r6 E9 v' {10.5.8 使用JSON消息 245
/ ]' `- o' }& k7 B+ j8 o
! p5 p' I. O! M& r2 [) K0 u10.5.9 清理并关闭Kafka 246( y* ]' @2 U3 S5 A
: W$ K# A; o _7 Q0 s( t
10.6 Kafka的类库 247
4 E# C. p a3 B0 D% w4 D8 }, r: S: w1 A7 q8 U5 c
10.7 端到端示例——MyConference中的演讲者提案 247
8 F- |7 S. g& t- n2 O4 N" o; p2 u2 m3 @ F+ O2 H
10.7.1 测试数据 247
# @# I2 X7 `* s F a
& {" ^% d7 D# [( j10.7.2 架构中的组件 249
7 x4 i7 K! ]4 w ~. o9 s; B, p, D$ f% G+ G5 G0 O
10.7.3 配置Kafka环境 250
( Z( q6 z$ S% V! b3 Q9 f: J# U. I, b; e
10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 251 q' Y! a1 _+ I9 c
0 C3 ^/ S6 r( Y9 u+ m
10.7.5 配置Node.js项目环境 251
9 N' m3 p# X9 }' r& a6 X/ ^3 b* A7 o
2 V& R/ _- d/ W- _2 v p10.7.6 演讲提案生成程序(用于发送演讲提案) 252
. M+ l9 m1 P2 i# k* D
3 r' y% s/ ^* f+ J) d10.7.7 提案审核程序(消息的消费者和生产者) 252
9 z# c; [- n! j$ {
3 D, y; I% G/ ^# Z) Y# l10.7.8 演讲者提醒程序(消息的消费者) 257
" U4 G- J- n* |3 M% Y. M
! G/ T- G% W5 ~- p0 D3 ^& Y! X2 v& D5 s10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 260
: o. w( j% T. z# E% o$ O U: ?& W+ m. t4 U- `! {
10.8 本章回顾 262
8 u+ { @1 A) N+ {) \$ q# W0 X& I/ j$ {, V9 I# `: \' c( N, @ n
附录 A 安装指南 263: a6 U. w J8 O
* O1 B6 X: e2 ]% ]附录 B JSON社区 277 B: {, Y. ~8 Q! z% W
* y1 o) }9 ]. J4 t8 B+ O, w, H8 q* s* {关于作者 278
8 ` Q1 s( t8 {0 Q8 q2 V, B% a. } o( |4 _+ `4 P
关于封面 2781 _* J: \5 d) y/ V; O) J( }
$ M7 A6 {6 I) q
Java资料百度网盘下载地址链接(百度云):java自学网(javazx.com) JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557 PDF 高清 电子书 百度云.rar【密码回帖可见】+ K. N) u: z1 g9 W6 R# z
0 u' f7 K* w8 k' Q) D' b* Z
9 u% s' a0 ?. {4 \6 w! E' T8 D( R* t, Q/ w2 X' `: [
% ^' w6 o# d. q
|
|