Skip to content

Commit

Permalink
Bump version to 1.3.0
Browse files Browse the repository at this point in the history
Add string() number() and bool() methods
  • Loading branch information
Mitchell Hentges committed Apr 7, 2016
1 parent 6e3ba28 commit c05e581
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 3 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# 1.3.0

Performance and array-index-trace release

* Array index is now shown in JSON traces. [0] is the first element, [1] is the second, and so on
* Can now parse strings, numbers and constants as the root element. It doesn't have to be an array or object anymore
* More internal consistency in the way root objects are handled
* Performance increased by at least 25% (only one stack is used for managing state)

# 1.2.0

* `list()` and `map()` are now static methods. Building an object is no longer necessary
Expand Down
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,15 @@ _Lower is better:_
```
String mapString = "{\"fast\":true, \"super-neat\":true}";
String listString = "[1, 2, false]";
String stringString = "\"yo dawg\"";
String numberString = "-1.2e-3";
String boolString = "true";
Map<String, Object> map = JsonParse.map(mapString);
List<Object> list = JsonParse.list(listString);
String string = JsonParse.string(stringString);
Number number = JsonParse.number(numberString);
Boolean bool = JsonParse.bool(boolString);
```

## Getting the dependency
Expand All @@ -26,13 +32,13 @@ List<Object> list = JsonParse.list(listString);
<dependency>
<groupId>ca.fuzzlesoft</groupId>
<artifactId>json-parse</artifactId>
<version>1.2.0</version>
<version>1.3.0</version>
</dependency>
```

**Gradle**
```
compile 'ca.fuzzlesoft:json-parse:1.2.0'
compile 'ca.fuzzlesoft:json-parse:1.3.0'
```

## Features
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>ca.fuzzlesoft</groupId>
<artifactId>json-parse</artifactId>
<version>1.2.0</version>
<version>1.3.0</version>
<packaging>jar</packaging>

<name>Json Parse</name>
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/ca/fuzzlesoft/JsonParse.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ public static List<Object> list(String jsonString) {
return (List<Object>) parse(jsonString);
}

public static String string(String jsonString) {
return (String) parse(jsonString);
}

public static Number number(String jsonString) {
return (Number) parse(jsonString);
}

public static boolean bool(String jsonString) {
return (boolean) parse(jsonString);
}

/**
* Parses jsonString according to what the outermost structure is
* @param jsonString parsed
Expand Down
18 changes: 18 additions & 0 deletions src/test/java/ca/fuzzlesoft/JsonParseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,24 @@ public void shouldOnlyThrowJsonParseExceptionOnTooManyClosingTags() {
} catch (JsonParseException ignored) {}
}

@Test
public void shouldTestIndividualStrings() {
Assert.assertEquals("foo", JsonParse.string("\n\t\"foo\" "));
Assert.assertEquals(null, JsonParse.string("\n\tnull "));
}

@Test
public void shouldTestIndividualNumbers() {
Assert.assertEquals(1234L, JsonParse.number("\n\t1234 "));
Assert.assertEquals(Double.valueOf("-13.3e+7"), JsonParse.number("\n\t-13.3e+7 "));
}

@Test
public void shouldTestIndividualBooleans() {
Assert.assertEquals(true, JsonParse.bool("\n\ttrue "));
Assert.assertEquals(false, JsonParse.bool("\n\tfalse "));
}

@Test
public void shouldFormatExceptionsWithJsonStack() {
assertFormatting("{\"a\":{\"b\":{\"c\": fasle}}}", "a.b.c: \"fasle\" is not a valid constant. Missing quotes?");
Expand Down

0 comments on commit c05e581

Please sign in to comment.