TA的每日心情 | 开心 2018-4-8 22:14 |
---|
签到天数: 1 天 [LV.1]初学乍练
普通会员

- 积分
- 5517
|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557》0 \: x' y& z0 c* p: c
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 ]0 M9 I1 N
& x3 g, b9 I/ v
作者:汤姆马尔斯 Marrs
5 [ `& T- Y! m l- C出版社:人民邮电出版社
: z" a. k3 D% h3 A出版时间:2018-07-01 - ]1 P4 F/ [8 w
书籍价格:65.00元; }3 g: a; |6 j3 a5 V
5 H( C! T G% W5 {7 z0 [% ^ 3 W+ }% D/ x1 i% s+ D& h
2 Y8 b: q' q) X6 m
% O+ n. e1 P" A* G9 o; r$ f
java电子书目录:
1 Q% r6 C7 n* ^5 ~1 Z; b- \: t& W第 1 章 JSON概述 3+ o5 L2 Z5 x3 A' d- A _& l
; l# \( I6 m5 g" c( B7 M
1.1 JSON是一项技术标准 3
+ D" e* m5 Z+ B4 W" R: ^0 {* P/ s- O# k3 G, x
1.2 示例 4
- ?/ |/ Q9 L* R1 \& h* O+ R: ^4 P9 F6 \; q5 u" i
1.3 为什么使用JSON 51 L0 I8 [) H, a8 F, D
8 h. y1 W) m" \% S# z
1.4 JSON的核心概念 6! \3 f2 w5 K& o$ v+ M3 z0 `
7 D- _, ^+ G$ X9 y2 y4 U3 G1.4.1 JSON数据类型 7
) u# i& F) [% k Z. s/ e
" c, t5 f" ~8 R* F/ \1.4.2 JSON值类型 9
3 Q, w" ^' u% @9 I C* ]$ S
" x$ A. P8 O5 N6 [# J4 E; P1.4.3 JSON的版本 11
: i i- F- {2 w; v0 O3 S7 I$ C- C d
1.4.4 JSON中的注释 129 _" i ~- Q9 \; f
Q: a. y2 p6 Y1.4.5 JSON文件及MIME类型 12
. x8 M& l) y7 L* l. m" B' W$ f" @) v6 }# ?! f, g7 Z
1.4.6 JSON编码规范 12
1 P) C: D9 ^, c( G0 Y7 c0 I# c+ ~: @4 b" j9 ?
1.5 本书示例:MyConference 14
0 d; x" x5 `; r9 f/ `2 h% I9 E
: h) J& Z5 A, G& }1.5.1 本书技术栈 14
H! a7 F/ w: D- p- }& y+ d& {
- e% [# H1 ^' k; v u1.5.2 本书架构风格:noBackend 14
- d/ E! _5 F5 N! Z/ Z
4 l4 `- D& K+ T, Q1.5.3 用JSON Editor Online对JSON数据进行建模 15; u7 o7 C u. x
/ y& Y5 M/ w: k/ t; ^
1.5.4 用JSON Generator生成示例数据 164 f( {. I2 @2 w8 ]
' T) T4 i3 e9 s# Z& X1.5.5 创建并部署模拟API 16
1 x# N w" {8 z1 [
) d/ [9 N- E4 ?* [! ?1.6 本章回顾 19
& w" y1 U4 E6 i# C# G. q: @2 j; Y) `, E
1.7 内容预告 192 F. S! `0 w, T! A" K+ e
" ~' A. e' t$ }" y" N
第 2 章 在JavaScript中使用JSON 204 q( y$ X8 R4 Y1 Z
- f) Y9 k" u& Z. O2.1 安装Node.js 202 C8 Z5 O- w N/ l: i) [, P
4 K* j) G q. r G8 _" u# ~, f2.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 214 @& C. t$ `4 @/ b" s6 V" ~; r
' x+ H; n; x! `# ]4 c, y
2.2.1 用于stringify/parse操作的“JSON”对象 217 w# g6 z$ `# L" V' o
; ~( _+ V# A4 h5 P2.2.2 JavaScript中简单数据类型的JSON序列化操作 216 Z: Y# ` j" |. z1 F
5 U; i: u' m' `4 r; u' I2.2.3 使用toJSON()进行对象的序列化操作 23
* x+ ~ \; |# X4 J
2 N. l, l. ?7 k! o" f% a2.2.4 使用eval()进行JSON的反序列化操作 24
. W# h/ S# T7 @$ R3 ]7 [
. s$ t0 M o6 ]$ z( D2.2.5 使用JSON.parse()进行JSON的反序列化操作 25. T) s7 v3 q s! K! }9 I
- B3 T2 v* D& \( X
2.3 JavaScript对象和JSON 26
7 v( {9 u4 t$ i5 X" t0 N9 d/ q5 M% x. v/ Y( z( Q$ R
2.3.1 Node REPL 26
4 `) j; _ q e, A6 a z
: j9 h- c7 D% J( A2.3.2 有关JavaScript对象的更多学习资料 28
( ]& a% d; N4 N0 f- {0 v% c( U8 ^+ ?) S
2.4 用模拟API进行单元测试 28
' ~( ~0 g. n6 w4 L
- I5 `+ U+ S$ f, s2.4.1 单元测试风格——TDD和BDD 28
; E# E9 t& d% {2 I/ O
$ t. f( c* ]: F2.4.2 使用Mocha和Chai即可完成单元测试 29
6 R" S5 e# R1 {, N ]
* x! C7 M" L, K3 B5 h& R X4 i2.4.3 设置单元测试环境 29$ _: L N1 z! T0 L, s! W$ P8 y
$ g" M% P& z. E
2.4.4 Unirest 29/ Q6 y2 y( R3 ]4 |/ L# |
1 B( F/ r2 ^9 k0 R/ }% x2.4.5 测试数据 30
6 h f9 N' e" X+ r! ]6 A" C
7 W$ B9 ~, c3 X3 c8 [2.4.6 对演讲者数据进行单元测试 305 x* u7 h% P. R4 w/ u- q0 e+ ^
8 |4 L/ E/ H- k) J2 J2.5 搭建小型Web应用程序 31& d3 z3 ]% }1 _/ K: T+ f- ^
. p. U. I. L2 }6 @/ T/ v2.5.1 Yeoman 32
3 v1 \5 F1 D8 L. N5 K! [$ r+ b' u* f9 S! g: p6 L5 g
2.5.2 第 1 阶段:使用Yeoman生成Web应用程序 33
& T& L6 g! e6 T$ G' Q$ _
5 N1 O4 u6 S+ K9 v2.5.3 第 2 阶段:使用jQuery发起HTTP请求 36! }/ I( [8 e! z' y$ C$ d3 C- D
8 e& o& E4 Z/ H l( z& i7 d' O2.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 407 ~* p' U6 ]* O7 T6 C1 Y& f
/ I9 y4 }! U7 j- ?0 k3 t+ l
2.6 如何继续深入学习JavaScript 44
4 T/ ?% P% I4 |+ v6 J j$ a. z$ E" U. j+ N6 y) X8 G" g
2.7 本章回顾 45
1 G' u, E, Y# x! [0 x
6 O' ^% x& m; G$ g8 Z# k2.8 内容预告 45/ [# h' z1 A3 ^
1 O# G6 @ b0 t- ~第 3 章 在Ruby on Rails中使用JSON 461 _' T2 a4 m( d; X2 I
% {7 [. F9 g( v! s O7 i( Y3.1 安装Ruby on Rails 46
: Y$ \1 B+ ^- @1 n8 f* f) x0 {: v. ]; h: s( k2 m
3.2 Ruby中与JSON有关的gem包 46% C( {7 ]+ D8 @0 ^% ?; V
' K/ J; S" o7 [$ W# s4 d; S
3.3 用MultiJson进行序列化 / 反序列化操作 47- [. X9 g8 J$ J, Z/ U" f4 ?
9 }7 O: c/ V- l/ Q, _3.3.1 MultiJson对象 47+ c. R5 a Y! m* S) W- ?
7 p! c- g# D D& `, c3.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 48
. |; o, o O) L8 A2 k& {+ d+ Y# p! i% F9 g8 B! p
3.3.3 用MultiJson进行JSON反序列化操作 501 `; A# o* \( ~
% ?6 G) B Q0 r- i. L+ O l
3.3.4 关于JSON和驼峰式命名 52
. a. x. A0 H0 q. |. v) X0 c* b1 I
/ U F( x/ C( d5 W3.3.5 用ActiveSupport进行JSON序列化操作 52
" r- C7 w A) _, Q, B3 X- Q2 Q& c1 E
3.3.6 用ActiveSupport进行JSON反序列化操作 53# M8 N0 X& J7 {# s5 ?( q
r9 G/ ]+ J- z, E* d* }2 V8 _
3.4 用模拟API进行单元测试 54
% P' p7 J4 _$ l3 a
, v/ W+ o( t0 l3.4.1 使用Minitest即可完成单元测试 54/ ^9 |& T: z( s, p) b
( P0 S, A1 k1 T# F) d6 s
3.4.2 设置单元测试环境 55( i5 Z2 y% d& _) r( J
" w$ q6 _0 N& a, |3.4.3 测试数据 55: t6 ]5 P4 b. w# \: M- e
* @6 P" c5 m' \8 }0 c
3.4.4 用Minitest测试API所提供的JSON 55( E9 j" P5 ?& ^! }7 X/ R
0 e7 ?! C4 ^1 S6 j X7 [* R5 Y) m! o3.4.5 对演讲者数据的单元测试 559 A; e& a6 @2 ^7 ^1 |3 r& P1 n
+ F8 ]& M3 q. [# x4 `/ L
3.4.6 有关Ruby和Minitest的更多学习资料 59
5 U* e7 K, n$ E' ]% j& |
1 ? ^. G, J" x0 o5 N& C' ^3.4.7 似乎少了点什么 59; E. K" t! K- x, x q7 w
' K9 ~$ R- z- v3.5 用Ruby on Rails搭建小型Web API 596 g+ d: p* s3 N9 R$ n* r
; r5 w7 P: y/ ?( h* A3.5.1 选择JSON序列化工具 60
( A! @* J1 p/ B# w, B: M5 x. X7 S; U# F) j! o. x/ Q6 F* T9 r, N
3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 61
2 d* g% Y( C9 T) \* p9 j$ P$ Z: x- C6 C: h3 x% m8 v3 h
3.5.3 speakers-api-2——创建API以提供自定义风格的JSON 670 X% W/ X0 B% i1 f
& u9 K( }: U; @, i9 z
3.5.4 有关Rails和Rails API的更多学习资料 68- B, h/ s2 a' o$ `3 ?2 d( h
( D v0 ]0 |! W" I3 x0 g3.6 本章回顾 69
( s7 z, d* x, C7 v2 \8 \& c! V3 D* F# J8 T. F
3.7 内容预告 69
$ F9 j* U$ K! ^& W0 h3 k5 P; E9 Z ]: o+ F
第 4 章 在Java中使用JSON 70
, |7 D0 P8 ~9 U) d. Y
; @' K% e2 e, F7 R5 R4.1 安装Java和Gradle 707 k( w- `- m: r' J* K9 ~
0 p. u, S& T' {1 f( Y0 I4.2 Gradle概览 702 F( x T; Q9 ^6 M3 s, W. Y* ^ y5 g I
: ^( M* R. s9 g% F, H& h: k8 X4.3 使用JUnit即可完成单元测试 72$ u- O- H/ l$ W, N2 M) q
! W+ k2 k! e. r8 S) c) W6 T
4.4 Java中的JSON类库 72/ z1 ~9 | ^6 _2 P; ?
1 b) }$ Q% X: c. P& `" Y4 P& ^4.5 用Jackson进行JSON序列化 / 反序列化操作 73( ~; y4 t' k4 [
% ~. @- [0 [+ @( B1 E4.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 73
2 j# X' ?0 V4 n' d/ P& u7 z7 B1 h! X/ @% i' f
4.5.2 对Java对象进行序列化 / 反序列化操作 758 }" a7 A9 Y( s2 J
7 w) y ~, D- N3 w& s8 d
4.6 用模拟API进行单元测试 79
5 P5 q% x/ f* H1 w
9 ]& S- t! D: T- v4.6.1 测试数据 79. }" u+ m( w1 ^- k
% b$ g" `: u7 a) }. e) v% {! W
4.6.2 用JUnit对API提供的JSON进行测试 80/ e" X8 t w7 [1 t0 k- e$ n) w% a
5 P3 {: q" U. h W4 d4.7 用Spring Boot搭建小型Web API 83
^) ]0 G/ \" `; s( l6 w- o- A, d2 L5 ~9 E8 a2 n
4.7.1 创建模型 84
' r U5 i' E. C2 Y0 N% ]/ F% l% O1 K+ P) K. W
4.7.2 创建控制器 85
6 ~4 W5 V* n% m* {2 c$ {7 s
Z1 |9 X6 `- e1 N1 X2 f: W& O4.7.3 注册应用程序 879 E: A& e. T3 n& ?' V7 Y$ H; U q
2 [, ]0 M4 {: q+ R8 S/ b4.7.4 编写构建脚本 878 q4 u1 X$ R* K3 B/ {0 N4 l
+ {4 U1 G7 H$ g, ?5 j4.7.5 部署API 89 d) X5 _: m E2 o8 q- E
6 ]4 e( c" Z* v# }0 S& I4.7.6 用Postman测试API 89( R0 c# J# O! H; O! n. g
+ {7 N. ]- c4 p. a3 z
4.8 本章回顾 90/ K* x p @. \& S( x5 B7 e+ }
( \$ O+ g9 T6 y$ L4.9 内容预告 90; o) l* v2 L1 ~9 Z4 l( g, k
( p" d2 E- t& P/ W) U- b F/ Y; W
D二部分 JSON生态系统
v) s2 A& P0 L, t/ z6 _! i7 f& A7 W, G2 ~0 _2 ~; X+ G& r7 u
第 5 章 JSON Schema 931 A" g. p8 R3 J* m5 h' b2 l
; V- V: H' A# p6 C, u/ S8 m2 ^( n
5.1 JSON Schema概览 93
+ N7 g; Q/ [/ T/ `7 p9 d: ]9 w0 e7 r# u6 C" L5 N# f
5.1.1 JSON Schema是什么 93
m4 e: K# E! C0 Q8 j4 W8 {
+ ]/ u6 @, H" F; s. _! b5.1.2 语法校验与语义校验 94
2 |: j1 Z$ S" f5 ~* J
) q1 q: C& C9 _5.1.3 简单示例 94, `( `6 ~! ?8 F. }
( |9 ]3 D" } _4 P+ i+ R5.1.4 Web上的JSON Schema资源 95/ C( }: J! W+ g- W% Y0 ~8 R
, m" E2 O8 Z& K0 B6 P5.1.5 为什么使用JSON Schema 96: r) p. l& Z. q2 V
b2 Y1 q4 y$ g$ V2 X1 L+ }5.1.6 我在JSON Schema上的经历 97
# r! _0 Z* T4 ]/ V
8 ~9 o. u# K0 G j" }% y5 A; D7 b5.1.7 JSON Schema标准的现状 97
) W; ?0 J% y% U
8 W4 n& U/ y) E$ I2 H6 h. N5.1.8 JSON Schema与XML Schema 97
5 l' D _5 H' a; ]1 F. I8 ^9 ~! O+ h: L
5.2 JSON Schema核心——基础知识与工具 979 n: i3 ~/ p" L7 x) i' E4 l8 x
0 _2 q# @1 f9 s& v5.2.1 JSON Schema工作流与工具 97
0 p6 H$ ]0 D5 w7 ^; Y, L$ `! I) `& w) n4 x2 p% X$ A6 H O5 c( V' w/ I
5.2.2 核心关键词 100
0 ?! a! }' B2 V# d6 Y$ ~5 w% Q# q+ N$ \+ S; ^9 d. [: x1 M; z. H9 u
5.2.3 基础类型 1008 T4 ? o4 H; l6 |4 s
7 ^' j2 }4 K; D2 T8 e3 S6 Q5.2.4 数值 103
+ Z( X5 f# J; X; x# X" \$ x. b* _. T' B/ w" Z( O, B. {
5.2.5 数组 104
; h$ o, q7 x7 g9 N6 u. n6 _/ z. B# O: p
5.2.6 枚举值 106' E1 O1 g" b8 h; f
. ~% v i3 k& O5.2.7 对象 107% O7 @0 h6 V. J! [7 d: Z( A
- \, ~; o- d% H, g: a5 F
5.2.8 模式属性 1082 R1 Q( c( k. c5 D
8 `+ s* I: u5 g( F5.2.9 正则表达式 1106 R. I) r. T7 k8 O
! S& p8 K5 s0 m, g; A7 t
5.2.10 依赖属性 111# ^$ A0 j( o. y7 X/ q5 c3 t+ N" @) Z; k
$ F# i3 m8 K |- o- c9 b" K
5.2.11 内部引用 113
! V5 L0 C. I1 t5 M: t: b1 a: T. W* U+ z# b4 G1 I
5.2.12 外部引用 114
1 c3 q( i+ ]4 E- I C
?' Z# q! N* e! O3 H$ e5.2.13 选择校验规则 1178 S8 h8 g: ~) f! H
* q- ^+ d& k. _8 y n3 u
5.3 如何使用JSON Schema设计和测试API 1216 U( A |; b2 y5 Z
. O$ Q; M! E9 C5 t1 _) @5.3.1 应用场景 121
7 o4 Y0 D4 E$ V! Z) |3 X* M* ]+ P7 C: e+ I0 E8 p6 G( w$ `6 p
5.3.2 JSON文档建模 121
( G8 Q9 N9 C! G- v. m! C8 f5 y7 ]/ X3 t" y# Q% I4 g
5.3.3 生成JSON Schema 122" B- {9 z3 C2 }. O0 E, U" U, V* H
9 w8 {7 X7 e2 z" B% j
5.3.4 校验JSON文档 125
7 x' k+ b0 ^/ d! A: X
8 J3 V& ~- V( I+ r( m. p5.3.5 生成示例数据 1264 E% D+ ?+ L+ S& A1 p
0 m1 h; U+ H: P* {- h: K% d
5.3.6 用json-server部署模拟API 129" k) q" R, v3 t. o# \
. M( J6 G' g5 n2 t8 V5.3.7 关于用JSON Schema设计和测试API的一些思考 130
8 e4 {; p2 G* j0 N0 i4 N# }% m4 j* g% g- @+ c2 j3 N* v
5.4 使用JSON Schema类库进行校验 130* {7 S" P: P* _/ t
9 q, S: p. N0 `0 X
5.5 如何继续深入学习JSON Schema 131 n% k* B5 g1 l, D
, U+ [3 f Y2 F8 p4 F `. W3 q5.6 本章回顾 1314 f# {% o* e: Y. A7 p% U
6 C9 ]$ v/ f- T2 f' a0 |5.7 内容预告 131
/ ]4 b* h" L; j! F
& M- @1 [' i0 b; k第 6 章 在JSON中进行搜索 132" _. `* K" s2 i6 d, s
2 l; t4 f3 S& b/ M2 L& ^
6.1 为什么要在JSON中进行搜索 132
5 S+ C; ~1 [2 Y0 W7 D/ T. z& g- F t7 B) ^% B' ?
6.2 JSON搜索类库和工具 132
1 F/ w Y, F4 G# X2 s$ V6 h* g4 C* @2 [* g
6.2.1 其他you秀工具 133. s. G" k" j- C# s6 Z6 y C
+ F% Y2 `& v: }6 ~/ B, M; o
6.2.2 选择工具的标准 133
( Z |+ f" R6 o7 g9 Y. b6 k, N. X h" O, E+ z$ R
6.3 测试数据 134
+ o- d5 g2 b& C7 ]# u( ]0 f: E% ]! [7 H1 |( x( D, h& p
6.4 设置单元测试环境 135
6 [) g, |; B0 \9 m G7 D2 N
- B/ G& T9 W! Q6.5 比较JSON搜索类库和工具 136- c( u2 v/ M/ l* {
4 B# N6 f! U7 ]5 F6 O% Q6.5.1 JSONPath 136) X9 y% m' r2 c/ z* E" A
5 K! d% r+ L$ ?" N" X6 a
6.5.2 JSON Pointer 141- G, h% N S: ?/ N0 d: ^3 A) h% |
) @( y; _% C( J* p5 H
6.5.3 jq 145
, `0 L: {: x% E4 F* H; T5 j1 B4 O( u1 T0 Z1 b1 g! A. q' E" A4 f# z f
6.6 搜索工具评估——总结概要 154" W) b3 ~0 z! O! i1 u
" O) f$ m: D9 _$ Y& Z& ]0 {2 [6.7 本章回顾 1557 X% z9 W8 Q4 s/ \* C0 k
. W. q; W! \: g' r0 u( C6.8 内容预告 155
7 A) C. i# X; ?, \8 P1 v
A- A1 M1 m6 W9 c H第 7 章 JSON转换 1564 C# a( z$ Q7 g8 J6 a) ~2 v
5 f8 q9 s3 z; r W& s" x
7.1 JSON转换类型 156" S1 h4 J2 Z2 Q2 X) g
0 B- R9 ?5 e3 g* ?7 [ T
7.2 选择JSON转换类库的标准 157
% q0 D" @. i+ ?7 F- J7 X& T3 h; M
7.3 测试输入数据 157+ X* a2 T% Q, Q8 u! L, U2 m p9 M
" A1 Q) U" T$ f( i- k3 K
7.4 将JSON转换为HTML 159
9 i1 C) u( t9 v- M# Z8 H- W% g, X
- e. ]1 W* ^$ s' g' W7.4.1 目标HTML文档 1599 w6 e F( X1 i/ f4 `) m: _
- P N( w$ a8 d! s: S: t3 x7.4.2 Mustache 160
0 o; t- i9 Z9 |. Y" r; o
* i/ |6 P6 H3 l7.4.3 Handlebars 165
( x& W$ Y% C* D$ W7 F
2 f+ Q# {" j: `# t3 C6 D! r7.4.4 转换工具评估——总结概要 170
$ X. _( g Q# |2 N1 i3 H
$ J q+ t( g- J* m2 G% P7.5 JSON格式转换 170# w* }* c$ f" Z- }# i/ c
4 @1 L8 ]; j7 N' D: k7.5.1 存在的问题 1704 L6 q: D; f3 W5 K" J" I# D
" C# c( x- Y8 i+ N
7.5.2 JSON格式转换类库 170+ K1 T9 ]5 g* D
3 R! g+ a' c* p* H3 t* f# u6 M- S7.5.3 其他you秀工具 171- e" v6 M" `! D8 Z3 c
* L+ z0 [! Z+ E2 o1 A: S7.5.4 目标JSON输出 171
- e/ a" ^7 k4 ~. p2 W0 d8 k* f: Z; ]; j% p' Y8 V/ @7 h
7.5.5 JSON Patch 172
# E, ?* O# ^5 E% ]9 Z- A1 I3 q1 [/ n* Q% q$ D, M3 k z. l
7.5.6 JSON-T 177
/ H. a1 o- K6 ?1 T! {1 ?1 h+ ?$ R1 T% M! c' m0 I' d0 b, Y6 K) \* y
7.5.7 Mustache 180, @0 k" e7 A3 U. k+ a
& f, B9 k4 I$ U1 u8 J8 d( H7.5.8 Handlebars 182
. j( l7 {& ` b. x0 b
# R. _! |% ~$ d3 s% {7.5.9 转换工具评估——总结概要 1848 |/ X2 \/ Y& C- K' ^, s$ \
( {0 m7 X0 U, W: O
7.6 JSON与XML的相互转换 185
# W0 M* f* L3 z( [( x' q/ v0 B( e/ v: p
7.6.1 传统转换工具 1853 O/ A4 q6 e# Y: l8 Q
F7 R Z* `) ?7 j6 O3 \1 v7.6.2 传统转换工具所面对的问题 193. [5 o% S8 e& g
0 h! s/ `# X* n/ }- d) I- O. B0 v7 l
7.6.3 XML-JSON相互转换——总结概要 193
+ ~5 G/ P R5 k& T! E) O6 j$ O# U# A) d- ]
7.6.4 JSON-XML相互转换——单元测试 194
0 @( M/ f+ c4 v6 _0 j w% U# Z( ]% w6 K& m6 O6 N9 ^5 j% h6 I
7.7 本章回顾 196# E& m: _3 x* \5 e
' ^; ^- x1 J8 B b7.8 内容预告 196
' T, n- a& X& N( K
0 Q5 E- c* z+ H2 [0 T第三部分 JSON的企业级应用
# ], t) r3 {0 V* u4 R/ s4 Q( L$ F4 O' u8 S6 x A: t$ K
第 8 章 JSON与超媒体 199
* ~& w, c2 S( p2 f; u+ g- x- I' x' g2 I9 a* x' b' C, w$ I9 y* p
8.1 超媒体格式对比 200
4 F. X. G- A- U: l6 ?. l4 |7 C
y9 q% C+ [+ I% o5 L8.1.1 定义关键词 201! g. s. r3 k! a, I+ O
1 h, M/ W: {& Y7 Q5 P
8.1.2 关于超媒体的个人看法 201
( Z% d }" A( z% R4 P* M( _) A* s2 Y3 F
8.1.3 Siren 202
0 _9 X4 f" p- ]9 `. U: A9 e
8 Z N2 f4 a) l8 C4 a& c# ~8.1.4 JSON-LD 203
: r4 R' l. u b+ @
2 N5 ~& @ {! @- d) C; e8.1.5 Collection JSON 207, ^; }) f3 ^4 |
: y6 I9 I3 P: v( _2 s8.1.6 json:api 208
0 D( K- P) F# R, `* N9 G1 u" ^7 X. a
8.1.7 HAL 2113 M! i V; i1 E0 X) {4 ^
3 k4 i0 U% @/ o" B" Z; Z8.2 结论 2157 I+ S) m' S* X5 v
$ y5 u5 t) ~3 b
8.3 建议 216, B5 \, f& H- {
* m. D; h) i0 g: }0 X8.4 实际中遇到的问题 217+ j7 |/ z9 ]3 y* F, m( \
! M; r \- }' T; D; k! k: R8.5 在演讲者数据API中用HAL进行测试 2174 I+ C( g( x6 v, v
- G1 w( h i3 E$ H, {1 g' H8.5.1 测试数据 2173 ]$ T: } H, z" P
4 [8 h, ]" o& U* Z0 ?
8.5.2 HAL单元测试 219
8 m' \8 W3 Q, s8 M) c' C8 b2 s1 T% d5 r5 z2 R$ _% ^
8.6 在服务器端使用HAL 222 r- Q+ [* a. D+ o7 E. U" ~
$ y/ r0 w! Z; P9 u1 E* y8.7 深入学习超媒体 2234 e8 f; Y1 @ b! t
7 E: ~2 e }3 Z8.8 本章回顾 223' D( X& J7 p- h
- B/ U& P8 u: _; k4 a8.9 内容预告 223
# H& R5 ?, {- N+ y% D1 b; T) v, l3 l, k3 O6 _7 P
第 9 章 JSON与MongoDB 2240 f" N3 C. }9 d$ I/ E% [
) a( i0 B) D( T/ n# e* C
9.1 关于BSON 224* J" Y0 h) D/ i0 \
# H* i6 O* {6 U! J, t. E' z6 F. Z9.2 安装MongoDB 2259 R1 e9 x r/ [6 f3 a
' M- N: o' E/ v+ m! s
9.3 MongoDB服务器及相关工具 2255 y' { d7 {3 |+ ~
; \* ~; K1 Q- o4 P4 a9.4 MongoDB服务器 225 _8 @& v5 ]# P6 w8 H% G, |
; r- A2 `0 y, u: V, h( o9.5 将JSON导入MongoDB 226
1 L5 K/ P# J) \8 k- a
: _9 P- \7 {1 O9 r: O% m1 w9.6 MongoDB命令行 228- {6 O0 v. Z o- @, R8 G
8 G, h2 h0 h( o N. ?6 ?4 r6 S8 i9.7 从MongoDB中导出JSON文档 2311 }# w4 e% m, v% p$ C. a/ R
' u# X/ n; c8 N# k$ ~6 V9 ^" z1 ~9.8 关于Schema 233
; K2 D+ \+ r8 }$ k% K9 I5 g% H
% u8 P/ N, F2 ?7 W' U" T: S9.9 用MongoDB进行RESTful API测试 234
$ s! j5 K: A _* [4 d& o! G* T! o0 e9 M8 J6 X: k
9.9.1 测试输入数据 235* C6 b- n7 ]" d! l8 b: l9 D7 \
1 M1 ?4 w, ]: l% b/ I% H
9.9.2 对MongoDB进行RESTful封装 235
1 v9 e+ c+ g' H" v+ ~ p' `. w/ \* G3 Q& A
9.10 本章回顾 237- R' ^$ k, S% ~+ I( s
+ f3 ~6 b) b3 ~* o) t
9.11 内容预告 238
9 h1 `/ [6 G; A i2 |5 \) G5 ^
1 o, s9 e: J% p- t/ p( B第 10 章 用Kafka实现JSON消息系统 239/ k( x6 z6 j# R
8 N' y9 o! ~) @
10.1 Kafka的用例 239* l1 i% C- v; D9 n# m9 U3 l
+ F' w/ u+ f6 v" [6 ?) y4 \10.2 Kafka中的概念和专有名词 2409 j6 _! q7 r4 |2 v
% r% @8 |8 z& b5 u+ c10.3 Kafka生态系统——相关项目 241
0 _$ m; |9 B/ V; N$ i M8 u
4 A8 N0 j( G; V# Y: x' `8 J, R10.4 配置Kafka环境 241" R$ M+ J7 X& e+ o- _
" I/ h) u; k7 f' H10.5 Kafka命令行界面 242
K' h# v8 ?1 W7 p
?" K9 \- o) f" R10.5.1 如何用命令行界面发布JSON消息 242
* y U6 K& ]8 P$ v9 l0 D. L3 K4 ~1 Q: o$ z
10.5.2 启动ZooKeeper 243' i0 c7 b9 B$ t1 _3 _
- o: L% V) _! o5 n' j* n. A
10.5.3 启动Kafka 243. J# H1 r" |9 ]) m- o0 v
1 y! Q& j1 V7 G2 [' d d10.5.4 创建主题 243& S; y2 Y; J0 Q! ^- v0 U/ g7 u
0 E; {4 b3 U: o4 [- S10.5.5 列举主题 244
' P o) B- ~# R/ e2 H0 B; a4 {1 F
$ d; B5 E. \0 t/ _) m7 J; v9 }10.5.6 启动消费者程序 244
6 _' J/ i O ]; g3 b' A) x6 e3 ^ }$ t, D$ \1 l
10.5.7 发布JSON消息 245' u6 ~' A8 y6 e% q" @4 ]/ K* }5 ^
! p$ c$ v! s; J- ]2 R7 A7 A1 s a( y1 @
10.5.8 使用JSON消息 245
8 L B6 o2 Z3 J: v
+ s" s$ q; ~9 Q, e10.5.9 清理并关闭Kafka 246
- y5 q! R4 I; w0 c0 `- i/ x$ o+ P! V) k8 p
10.6 Kafka的类库 247& V; J' r7 U& o& @' Q4 {2 z
% k, w J9 R2 w1 \: X! ]1 c6 r
10.7 端到端示例——MyConference中的演讲者提案 247
9 N- X8 T8 t* p) j. J& {
! L7 \) M/ K" I4 K) L$ J+ J10.7.1 测试数据 247( k. J5 g! \; }( v
/ |* ^8 l4 E' l* f5 [8 `, }* b10.7.2 架构中的组件 249& {9 _4 N3 |0 s9 N, t" O
3 y% i% f9 u- T; ?10.7.3 配置Kafka环境 250
' @# x5 \' Z! S
, m+ ^8 {) Q, B8 u/ u* l10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 251
) M: F! B& j7 P
. r9 |" `$ d% G10.7.5 配置Node.js项目环境 2518 J" u Q* m5 D" Z0 l
0 M% |' I2 C! e) x) B9 }/ \
10.7.6 演讲提案生成程序(用于发送演讲提案) 252
( g% ]8 _ S- k& U% L
+ e% h8 D' g- o }10.7.7 提案审核程序(消息的消费者和生产者) 252
' @# s% O5 r: I. f/ y( r
4 H% J) m& _* f- e+ w) r$ d7 O10.7.8 演讲者提醒程序(消息的消费者) 257
V( ?+ g3 J% s4 A* j# c: @+ k! t8 e. M
10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 260
/ B! |" q! \! M* ?! z0 `0 [- L7 r9 n8 j; E# ]9 W4 B
10.8 本章回顾 2624 g' \! g7 L$ J/ H8 Z$ t; K
& S, e) h+ U4 ^) ~; f% V附录 A 安装指南 263
9 X# ? [, w3 m, E; B- C; w3 ?
2 D4 d( U& B4 F8 I8 r* g( p+ `附录 B JSON社区 277
\- s% n8 F; v& R
' T3 t; |5 ~$ J. }( l( s关于作者 2784 w* f9 R% l/ p: \
: Q* v' L2 S0 Z- \* ~( k8 ?
关于封面 278
5 k( ]3 H0 }0 S$ p3 |" N. q) w3 X) B; _$ [" ]7 l0 F
Java资料百度网盘下载地址链接(百度云):java自学网(javazx.com) JSON实战 [美]汤姆马尔斯(Tom Marrs) 9787115485557 PDF 高清 电子书 百度云.rar【密码回帖可见】& F+ |/ @( d/ K2 E1 [. t1 W
5 C7 B; M4 b3 y: d1 t5 M J5 p3 H' R
$ i; e% P) r0 m0 b: [
6 p& q* Z5 U8 _/ B2 h7 t
1 z$ ~* }) G3 G; j4 [ {8 b9 W) |& S! G |
|