Statistics
| Branch: | Revision:

root / json-framework-3.2.0 / NEWS.md @ 3ebe9884

History | View | Annotate | Download (5.2 kB)

1
3.2.0 (January 19th, 2013)
2
==========================
3

    
4
Version 3.2.0 was released, with no changes since rc1.
5

    
6
3.2.0-rc1 (January 4th, 2013)
7
=============================
8

    
9
**Deprecations**
10

    
11
* Deprecated the `JSONValue` and `JSONRepresentation` category methods.
12
* Deprecated several methods that return an error through an `NSError**` argument.
13

    
14
These will be removed in the next major version release.
15

    
16
**Changes**
17

    
18
* Absorb LICENSE and INSTALL files into README.
19
* Remove the Xcode Workspace from the top-level source checkout; the less
20
  clutter the better and this doesn't seem to serve any function.
21
* Change to use AppleDoc for creating API documentation. This results in
22
  output looking more consistent with Apple's documentation.
23

    
24
**Bugfixes**
25

    
26
* Replace use of INFINITY with HUGE_VAL where used as double (reported by
27
Antoine Cœur)
28
* Correctly parse -0.0 as a JSON number (Cary Yang)
29

    
30
3.1.1 (August 4th, 2012)
31
========================
32

    
33
Bugfix release. This release is special in that it mainly contains code by other people. Thanks guys!
34

    
35
* Fix bug that could result in a long long overflow (Ole André Vadla Ravnås)
36
* Make SINGLETON thread safe (Alen Zhou)
37
* Updated .gitattributes to say that tests are binary files (Phill Baker)
38
* Fix string formatter warning in new XCode (Andy Brett)
39
* Fix issue that could lead to "bad access" or zombie errors (jonkean)
40
* Update links to API docs
41

    
42

    
43
3.1 (March 26th, 2012)
44
=====================
45

    
46
Automatic Reference Counting
47
----------------------------
48

    
49
3.1 requires Xcode 4.2 to build, because previous versions did
50
not have ARC support. If you can't use Xcode 4.2, or for some reason
51
can't use ARC, you need to stick with version 3.0.
52

    
53
To make this move simpler I decided to move to 64-bit only & remove
54
instance variables for properties.
55

    
56
Miscellaneous
57
-------------
58

    
59
* Added an optional comparator that is used when sorting keys.
60
* Be more memory-efficient when parsing long strings containing escaped characters.
61
* Add a Workspace that includes the sample projects, for ease of browsing.
62
* Report error for numbers with exponents outside range of -128 to 127.
63

    
64

    
65
3.0 (June 18th, 2011)
66
=====================
67

    
68
JSON Stream Support
69
-------------------
70

    
71
We now support parsing of documents split into several NSData chunks,
72
like those returned by *NSURLConnection*. This means you can start
73
parsing a JSON document before it is fully downloaded. Depending how you
74
configure the delegates you can chose to have the entire document
75
delivered to your process when it's finished parsing, or delivered
76
bit-by-bit as records on a particular level finishes downloading. For
77
more details see *SBJsonStreamParser* and *SBJsonStreamParserAdapter* in
78
the [API docs][api].
79

    
80
There is also support for *writing to* JSON streams. This means you can
81
write huge JSON documents to disk, or an HTTP destination, without
82
having to hold the entire structure in memory. You can use this to
83
generate a stream of tick data for a stock trading simulation, for
84
example. For more information see *SBJsonStreamWriter* in the [API
85
docs][api].
86

    
87
Parse and write UTF8-encoded NSData
88
-----------------------------------
89

    
90
The internals of *SBJsonParser* and *SBJsonWriter* have been rewritten
91
to be NSData based. It is no longer necessary to convert data returned
92
by NSURLConnection into an NSString before feeding it to the parser. The
93
old NSString-oriented API methods still exists, but now converts their
94
inputs to NSData objects and delegates to the new methods.
95

    
96
Project renamed to SBJson
97
-------------------------
98

    
99
The project was renamed to avoid clashing with Apple's private
100
JSON.framework. (And to make it easier to Google for.)
101

    
102
* If you copy the classes into your project then all you need to update
103
is to change the header inclusion from `#import "JSON.h"` to `#import
104
"SBJson.h"`.
105
* If you link to the library rather than copy the classes you have to
106
change the library you link to. On the Mac `JSON.framework` became
107
`SBJson.framework`. On iOS `libjson.a` became `libsbjson-ios.a`. In both
108
cases you now have to `#import <SBJson/SBJson.h>` in your code.
109

    
110
API documentation integrated with Xcode
111
---------------------------------------
112

    
113
The *InstallDocumentation.sh* script allows you to generate [API
114
documentation][api] from the source and install it into Xcode, so it's
115
always at your fingertips. (This script requires [Doxygen][] to be
116
installed.) After running the script from the top-level directory, open
117
Xcode's documentation window and search for SBJson. (You might have to
118
close and re-open Xcode for the changes to take effect.)
119

    
120
[api]: http://stig.github.com/json-framework/api/3.0/
121
[Doxygen]: http://doxygen.org
122

    
123
Example Projects
124
----------------
125

    
126
These can be found in the Examples folder in the distribution.
127

    
128
* TweetStream: An exampleshowing how to use the new streaming
129
functionality to interact with Twitter's multi-document streams. This
130
also shows how to link to the iOS static lib rather than having to copy
131
the classes into your project.
132
* DisplayPretty: A small Mac example project showing how to link to an
133
external JSON framework rather than copying the sources into your
134
project. This is a fully functional (though simplistic) application that
135
takes JSON input from a text field and presents it nicely formatted into
136
another text field.