mirror of
https://github.com/ethauvin/JSON-java.git
synced 2025-06-17 07:50:52 -07:00
non-number numbers
This commit is contained in:
parent
3e3951f125
commit
88f27f3168
2 changed files with 58 additions and 46 deletions
|
@ -86,7 +86,7 @@ import java.util.ResourceBundle;
|
|||
* <li>Numbers may have the <code>0x-</code> <small>(hex)</small> prefix.</li>
|
||||
* </ul>
|
||||
* @author JSON.org
|
||||
* @version 2011-04-05
|
||||
* @version 2011-10-16
|
||||
*/
|
||||
public class JSONObject {
|
||||
|
||||
|
@ -426,7 +426,7 @@ public class JSONObject {
|
|||
|
||||
String string = Double.toString(d);
|
||||
if (string.indexOf('.') > 0 && string.indexOf('e') < 0 &&
|
||||
string.indexOf('E') < 0) {
|
||||
string.indexOf('E') < 0) {
|
||||
while (string.endsWith("0")) {
|
||||
string = string.substring(0, string.length() - 1);
|
||||
}
|
||||
|
@ -743,7 +743,7 @@ public class JSONObject {
|
|||
|
||||
String string = number.toString();
|
||||
if (string.indexOf('.') > 0 && string.indexOf('e') < 0 &&
|
||||
string.indexOf('E') < 0) {
|
||||
string.indexOf('E') < 0) {
|
||||
while (string.endsWith("0")) {
|
||||
string = string.substring(0, string.length() - 1);
|
||||
}
|
||||
|
@ -1226,6 +1226,7 @@ public class JSONObject {
|
|||
* @return A simple JSON value.
|
||||
*/
|
||||
public static Object stringToValue(String string) {
|
||||
Double d;
|
||||
if (string.equals("")) {
|
||||
return string;
|
||||
}
|
||||
|
@ -1260,7 +1261,10 @@ public class JSONObject {
|
|||
try {
|
||||
if (string.indexOf('.') > -1 ||
|
||||
string.indexOf('e') > -1 || string.indexOf('E') > -1) {
|
||||
return Double.valueOf(string);
|
||||
d = Double.valueOf(string);
|
||||
if (!d.isInfinite() && !d.isNaN()) {
|
||||
return d;
|
||||
}
|
||||
} else {
|
||||
Long myLong = new Long(string);
|
||||
if (myLong.longValue() == myLong.intValue()) {
|
||||
|
|
10
Test.java
10
Test.java
|
@ -40,7 +40,7 @@ SOFTWARE.
|
|||
* comparisons of .toString to a string literal are likely to fail.
|
||||
*
|
||||
* @author JSON.org
|
||||
* @version 2011-10-05
|
||||
* @version 2011-10-16
|
||||
*/
|
||||
public class Test extends TestCase {
|
||||
public Test(String name) {
|
||||
|
@ -67,6 +67,10 @@ public class Test extends TestCase {
|
|||
jsonobject = XML.toJSONObject(string);
|
||||
assertEquals("{\"test\": {\n \"blank\": \"\",\n \"empty\": \"\"\n}}", jsonobject.toString(2));
|
||||
assertEquals("<test><blank/><empty/></test>", XML.toString(jsonobject));
|
||||
|
||||
string = "<subsonic-response><playlists><playlist id=\"476c65652e6d3375\"/><playlist id=\"50617274792e78737066\"/></playlists></subsonic-response>";
|
||||
jsonobject = XML.toJSONObject(string);
|
||||
assertEquals("{\"subsonic-response\":\"playlists\":{\"playlist\":[{\"id\":\"476c65652e6d337\"},\"id\":\"50617274792e78737066\"}]}}}", jsonobject.toString());
|
||||
}
|
||||
|
||||
public void testNull() throws Exception {
|
||||
|
@ -95,6 +99,10 @@ public class Test extends TestCase {
|
|||
jsonarray = new JSONArray(string);
|
||||
assertEquals("[1122334455]", jsonarray.toString());
|
||||
|
||||
string = "[666e666]";
|
||||
jsonarray = new JSONArray(string);
|
||||
assertEquals("[\"666e666\"]", jsonarray.toString());
|
||||
|
||||
string = "[00.10]";
|
||||
jsonarray = new JSONArray(string);
|
||||
assertEquals("[0.1]", jsonarray.toString());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue