beek
beek

Reputation: 3750

Simple Java Json to Array

I'm stuck on something silly I'd appriciate some help with,

I'm getting this string via a stringified object in javascript:

{"63F67024-6FE1-D1B9-41D2-61156F11089A":0,"7cc8732e-d532-463e-9b5e-38fe14664b9e":1,"7CC40FFC-7BED-82DF-41C3-78C2BE8CD901":2,"f7344b33-860a-4934-b1f8-044b80a7b894":3,"31f65628-12b1-4363-848d-2bce07b8ac30":4,"7CF2DCA9-7BEC-8566-41A2-4898E5C110BC":5,"7D1C42ED-7BED-82FE-41D2-5045E9F0C13F":6,"D4EC2E5B-D807-2F30-41EA-6A4D9278BE81":7,"91ACF8F7-9516-F12F-41C1-BF57E6F223BE":8,"28d65730-9da0-457b-9d25-0f33628c0e5c":9,"57D44260-6D6D-E0E0-4171-71080149751C":10}

What's the cleanest, simplest way to convert this into an array of objects?

I've started doing something ugly by just removing the unwanted characters and doing something like this:

        List<String> list = new ArrayList<String>(Arrays.asList(value.split(",")));

    for(String s : list)
        System.out.println(s);

But I'm sure there is a cleaner, simpler way ideally with GSON

Upvotes: 0

Views: 59

Answers (2)

Pankaj Saboo
Pankaj Saboo

Reputation: 1185

jackson having ObjectMapper class which also doing this but it map the with the object and key name and object field name should be same for mapping code will be

import following package

org.codehaus.jackson.map.ObjectMapper;

call will be

ObjectMapper objectMapper = new ObjectMapper();
Yourclass classObj = objectMapper
                .readValue(jsonasString,Yourclass.class);

Upvotes: 1

Kris
Kris

Reputation: 5792

Your JSON string looks like a simple list of key/value pairs. How about converting it to a Map

public static void jsonToMap(String t) throws JSONException {

        HashMap<String, String> map = new HashMap<String, String>();
        JSONObject jObject = new JSONObject(t);
        Iterator<?> keys = jObject.keys();

        while( keys.hasNext() ){
            String key = (String)keys.next();
            String value = jObject.getString(key); 
            map.put(key, value);

        }

        System.out.println("json : "+jObject);
        System.out.println("map : "+map);
    }

Hope it helps.

Upvotes: 1

Related Questions