Search in sources :

Example 6 with JSONParser

use of net.minidev.json.parser.JSONParser in project json-android-compare by martinadamek.

the class SmartJson method parsePublicTimeline.

public List<Map> parsePublicTimeline(InputStream inputStream) {
    List<Map> result = new ArrayList<Map>();
    JSONParser p = new JSONParser(JSONParser.MODE_JSON_SIMPLE);
    try {
        Map map;
        Set keys;
        Set keys2;
        JSONObject user;
        JSONObject jsonObject;
        JSONArray jsonArray = (JSONArray) p.parse(new InputStreamReader(inputStream));
        int size = jsonArray.size();
        for (int i = 0; i < size; i++) {
            map = new HashMap();
            jsonObject = (JSONObject) jsonArray.get(i);
            keys = jsonObject.keySet();
            for (Object key : keys) {
                if ("user".equals(key)) {
                    user = (JSONObject) jsonObject.get(key);
                    keys2 = user.keySet();
                    for (Object key2 : keys2) {
                        map.put("user." + key2, user.get(key2));
                    }
                } else {
                    map.put(key, jsonObject.get(key));
                }
            }
            result.add(map);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
Also used : Set(java.util.Set) JSONObject(net.minidev.json.JSONObject) InputStreamReader(java.io.InputStreamReader) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) JSONArray(net.minidev.json.JSONArray) JSONParser(net.minidev.json.parser.JSONParser) JSONObject(net.minidev.json.JSONObject) Map(java.util.Map) HashMap(java.util.HashMap)

Example 7 with JSONParser

use of net.minidev.json.parser.JSONParser in project ddf by codice.

the class TestRestEndpoint method testGetDocumentSourcesSuccess.

/**
     * Tests getting source information
     *
     * @throws Exception
     */
@Test
public void testGetDocumentSourcesSuccess() throws Exception {
    final String localSourceId = "local";
    final String fed1SourceId = "fed1";
    final String fed2SourceId = "fed2";
    final String version = "4.0";
    final String jsonMimeTypeString = "application/json";
    Set<ContentType> contentTypes = new HashSet<ContentType>();
    contentTypes.add(new ContentTypeImpl("ct1", "v1"));
    contentTypes.add(new ContentTypeImpl("ct2", "v2"));
    contentTypes.add(new ContentTypeImpl("ct3", null));
    JSONArray contentTypesInJSON = new JSONArray();
    for (ContentType ct : contentTypes) {
        JSONObject ob = new JSONObject();
        ob.put("name", ct.getName());
        ob.put("version", ct.getVersion() != null ? ct.getVersion() : "");
        contentTypesInJSON.add(ob);
    }
    Set<SourceDescriptor> sourceDescriptors = new HashSet<SourceDescriptor>();
    SourceDescriptorImpl localDescriptor = new SourceDescriptorImpl(localSourceId, contentTypes);
    localDescriptor.setVersion(version);
    localDescriptor.setAvailable(true);
    SourceDescriptorImpl fed1Descriptor = new SourceDescriptorImpl(fed1SourceId, contentTypes);
    fed1Descriptor.setVersion(version);
    fed1Descriptor.setAvailable(true);
    SourceDescriptorImpl fed2Descriptor = new SourceDescriptorImpl(fed2SourceId, null);
    fed2Descriptor.setAvailable(true);
    sourceDescriptors.add(localDescriptor);
    sourceDescriptors.add(fed1Descriptor);
    sourceDescriptors.add(fed2Descriptor);
    SourceInfoResponse sourceInfoResponse = new SourceInfoResponseImpl(null, null, sourceDescriptors);
    CatalogFramework framework = mock(CatalogFramework.class);
    when(framework.getSourceInfo(isA(SourceInfoRequestEnterprise.class))).thenReturn(sourceInfoResponse);
    RESTEndpoint restEndpoint = new RESTEndpoint(framework);
    Response response = restEndpoint.getDocument(null, null);
    assertEquals(OK, response.getStatus());
    assertEquals(jsonMimeTypeString, response.getMetadata().get("Content-Type").get(0));
    String responseMessage = IOUtils.toString((ByteArrayInputStream) response.getEntity());
    JSONArray srcList = (JSONArray) new JSONParser().parse(responseMessage);
    assertEquals(3, srcList.size());
    for (Object o : srcList) {
        JSONObject src = (JSONObject) o;
        assertEquals(true, src.get("available"));
        String id = (String) src.get("id");
        if (id.equals(localSourceId)) {
            assertThat((Iterable<Object>) src.get("contentTypes"), hasItems(contentTypesInJSON.toArray()));
            assertEquals(contentTypes.size(), ((JSONArray) src.get("contentTypes")).size());
            assertEquals(version, src.get("version"));
        } else if (id.equals(fed1SourceId)) {
            assertThat((Iterable<Object>) src.get("contentTypes"), hasItems(contentTypesInJSON.toArray()));
            assertEquals(contentTypes.size(), ((JSONArray) src.get("contentTypes")).size());
            assertEquals(version, src.get("version"));
        } else if (id.equals(fed2SourceId)) {
            assertEquals(0, ((JSONArray) src.get("contentTypes")).size());
            assertEquals("", src.get("version"));
        } else {
            fail("Invalid ID returned");
        }
    }
}
Also used : ContentTypeImpl(ddf.catalog.data.impl.ContentTypeImpl) SourceDescriptor(ddf.catalog.source.SourceDescriptor) ContentType(ddf.catalog.data.ContentType) SourceDescriptorImpl(ddf.catalog.source.impl.SourceDescriptorImpl) JSONArray(net.minidev.json.JSONArray) Matchers.anyString(org.mockito.Matchers.anyString) SourceInfoRequestEnterprise(ddf.catalog.operation.impl.SourceInfoRequestEnterprise) QueryResponse(ddf.catalog.operation.QueryResponse) Response(javax.ws.rs.core.Response) SourceInfoResponse(ddf.catalog.operation.SourceInfoResponse) JSONObject(net.minidev.json.JSONObject) CatalogFramework(ddf.catalog.CatalogFramework) SourceInfoResponseImpl(ddf.catalog.operation.impl.SourceInfoResponseImpl) JSONParser(net.minidev.json.parser.JSONParser) JSONObject(net.minidev.json.JSONObject) SourceInfoResponse(ddf.catalog.operation.SourceInfoResponse) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 8 with JSONParser

use of net.minidev.json.parser.JSONParser in project ddf by codice.

the class GeoNamesWebService method query.

private Object query(String urlStr) {
    final String response;
    try {
        WebClient client = createWebClient(urlStr);
        response = client.acceptEncoding(StandardCharsets.UTF_8.name()).accept("application/json").get(String.class);
    } catch (WebApplicationException | ProcessingException e) {
        LOGGER.debug("Error while making GeoNames request.", e);
        return null;
    }
    try {
        JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE);
        return parser.parse(response);
    } catch (ParseException e) {
        LOGGER.debug("Error while parsing JSON message from GeoNames service.", e);
        return null;
    }
}
Also used : WebApplicationException(javax.ws.rs.WebApplicationException) JSONParser(net.minidev.json.parser.JSONParser) ParseException(net.minidev.json.parser.ParseException) WebClient(org.apache.cxf.jaxrs.client.WebClient) ProcessingException(javax.ws.rs.ProcessingException)

Aggregations

JSONParser (net.minidev.json.parser.JSONParser)8 JSONObject (net.minidev.json.JSONObject)5 JSONArray (net.minidev.json.JSONArray)4 Test (org.junit.Test)4 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 BaseTest (com.jayway.jsonpath.BaseTest)1 Action (ddf.action.Action)1 CatalogFramework (ddf.catalog.CatalogFramework)1 ContentType (ddf.catalog.data.ContentType)1 ContentTypeImpl (ddf.catalog.data.impl.ContentTypeImpl)1 QueryResponse (ddf.catalog.operation.QueryResponse)1 SourceInfoResponse (ddf.catalog.operation.SourceInfoResponse)1 SourceInfoRequestEnterprise (ddf.catalog.operation.impl.SourceInfoRequestEnterprise)1 SourceInfoResponseImpl (ddf.catalog.operation.impl.SourceInfoResponseImpl)1 SourceDescriptor (ddf.catalog.source.SourceDescriptor)1 SourceDescriptorImpl (ddf.catalog.source.impl.SourceDescriptorImpl)1 InputStreamReader (java.io.InputStreamReader)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1