Ошибка при разборе вложенных объектов JSON в массиве с использованием Java - PullRequest
0 голосов
/ 28 декабря 2018

Я получаю сообщение об ошибке JSONObject["results"] not found при попытке проанализировать приведенную ниже строку json:

{
    "serviceModel": {
        "results": [
            {
                "application": {
                    "applicationId": 1234"applicationStatus": "Determined""applicationSubmittedDate": "2013-09-19 12:00:00 AM""applicationType": "Initial""asOfDate": "2018-12-28 02:42:26 AM""logicalApplicationId": "1234"
                }"contact": {
                    "addresses": [
                        {
                            "city": "Bridgeport""county": "Fairfield""line1": "123 Main Road""state": "CT""type": "H""zipCode": "12345"
                        }{
                            "city": "Bridgeport""county": "Fairfield""line1": "123 Main Road""state": "CT""type": "M""zipCode": "12345"
                        }
                    ]"dob": "1900-01-01""firstName": "John""gender": "MALE""homelessIndicator": "N""lastName": "Smith""otherIds": []"personId": "11233""preferredLanguage": "E""primaryApplicantIndicator": "Y""ssn": "123456789"
                }
            }
        ]"summary": {
            "resultCount": 1
        }
    }
}

А ниже приведен мой текущий код (хотя я пробовал много разных итераций):

JSONObject jsonResults = new JSONObject(sb.toString());
JSONArray array = jsonResults.getJSONArray("results");
for (int index=0;index<array.length();index++)
    {
JSONObject obj=array.getJSONObject(index);
if (!obj.isNull("ssn"))
    }
ssn = obj.getString("ssn");
data.addToLog("SSN"+ String.valueOf(index),ssn);
    }
       }
data.addToLog("SSN",ssn);

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

ваша строка json не отформатирована, пропущены некоторые запятые и кавычки, можно использовать это:

{"serviceModel":{"results":[{"application":{"applicationId":"1234","applicationStatus":"Determined","applicationSubmittedDate":"2013-09-19 12:00:00 AM","applicationType":"Initial","asOfDate":"2018-12-28 02:42:26 AM","logicalApplicationId":"1234"},"contact":{"addresses":[{"city":"Bridgeport","county":"Fairfield","line1":"123 Main Road","state":"CT","type":"H","zipCode":"12345"},{"city":"Bridgeport","county":"Fairfield","line1":"123 Main Road","state":"CT","type":"M","zipCode":"12345"}],"dob":"1900-01-01","firstName":"John","gender":"MALE","homelessIndicator":"N","lastName":"Smith","otherIds":[],"personId":"11233","preferredLanguage":"E","primaryApplicantIndicator":"Y","ssn":"123456789"}}],"summary":{"resultCount":1}}}

, чтобы получить результаты массива json:

JSONArray array = jsonResults.getJsonObject("serviceModel").getJsonArray("results");
0 голосов
/ 28 декабря 2018

Ваша строка не в допустимом формате JSON, так как вы не используете запятые между полями.Измените строку json, как показано ниже, а затем попробуйте.

{"serviceModel":{"results":[{"application":{"applicationId":1234,"applicationStatus":"Determined","applicationSubmittedDate":"2013-09-19 12:00:00 AM","applicationType":"Initial","asOfDate":"2018-12-28 02:42:26 AM","logicalApplicationId":"1234"},
"contact":{"addresses":[
  {"city":"Bridgeport","county":"Fairfield","line1":"123 Main Road","state":"CT","type":"H","zipCode":"12345"},
  {"city":"Bridgeport","county":"Fairfield","line1":"123 Main Road","state":"CT","type":"M","zipCode":"12345"}],
  "dob":"1900-01-01","firstName":"John","gender":"MALE","homelessIndicator":"N","lastName":"Smith",
  "otherIds":[],
  "personId":"11233",
  "preferredLanguage":"E",
  "primaryApplicantIndicator":"Y",
  "ssn":"123456789"
}}],"summary":{"resultCount":1}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...