Sample code for 30+ languages & platforms
Java

Demonstrates how to Handle Large Integers in JSON

See more JSON Examples

Demonstrates how to handle large integers in JSON. (Integers larger than what can fit in a 32-bit signed integer.)

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;

public class ChilkatExample {

    public static void main(String[] args) {
        // Let's say your JSON has this:

        // {
        //     "id": 20000000001234567
        // }

        JsonObject json = new JsonObject();

        try {
            json.loadFile("qa_data/json/large_int.json");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // The integer is too large for a 32-bit signed integer that is returned by IntOf.
        // The result will be something that wrapped around and could be negative.
        // In this case it would be: -543893881
        int id = json.intOf("id");
        System.out.println("id: " + id);

        // The solution is to read the integer value as a string, and then use the features in your programming language
        // to convert from a string to a 64-bit integer.
        //
        // Alternatively, you may wish to simply hold the value as a string.  If, for example, the integer simply references
        // an order ID, an account ID, etc., then there's no need to convert to an integer value.  You're not going to be doing
        // mathematical operations on it anyway.  This is usually the case for large integers -- they typically exist
        // in JSON as an account ID.

        // You can get any JSON value as a string:
        String accountId = json.stringOf("id");
        System.out.println("accountId: " + accountId);

        // Sample output:

        // id: -543893881
        // accountId: 20000000001234567
    }
}