Как обновить определенные значения JSON?

#android #json #android-json

#Android #json #android-json

Вопрос:

Структура JSON

 {
"MatchType": {
    "inningsperteam": "1",
    "maxovers": "5",
    "players": "11"
},
"Innings": [
    {
        "noballs": "0",
        "BowlingDetail": [
            {
                "noballs": "0",
                "balls": "0",
                "maidens": "0",
                "player": "Bowler 12",
                "runs": "0",
                "wickets": "0",
                "bowlingposition": "1",
                "wides": "0"
            }
        ],
        "byes": "0",
        "battingteam": "Team 26",
        "overs": "0",
        "addpenaltyruns": "0",
        "legbyes": "0",
        "inplay": "true",
        "balls": "0",
        "InningsOvers": [],
        "declared": "false",
        "penaltyruns": "0",
        "bowlingteam": "Team 46",
        "runs": "0",
        "BattingDetail": [
            {
                "sixes": "0",
                "balls": "0",
                "runs": "0", //want update this variable values from 0 to 10
                "player": "Batsman 1",
                "fours": "0",
                "battingposition": "1"
            },
            {
                "sixes": "0",
                "balls": "0",
                "runs": "0",
                "player": "Batsman 2",
                "fours": "0",
                "battingposition": "1"
            }
        ],
        "wickets": "0",
        "wides": "0",
        "completed": "false"
    }
],
"Umpire 1": "Umpire 12",
"Umpire 2": "Umpire 53",
"location": "England",
"Ground": "Oval",
"date": "20/6/2014",
"Club": [
    {
        "Team": {
            "Player": [
                {
                    "keeper": "false",
                    "captain": "false",
                    "firstname": "Batsman 1"
                },
                {
                    "keeper": "false",
                    "captain": "false",
                    "firstname": "Batsman 2"
                }
            ],
            "local": "1",
            "name": "Team 26",
            "toss": "false"
        },
        "local": "1",
        "name": "Club1"
    },
    {
        "Team": {
            "Player": [
                {
                    "keeper": "false",
                    "captain": "true",
                    "firstname": "Bowler 12"
                }
            ],
            "local": "2",
            "name": "Team 46",
            "toss": "true"
        },
        "local": "2",
        "name": "Club2"
    }
],
"CurrentPlayers": {
    "bowler": "Bowler 12",
    "playerA": "Batsman 1",
    "playerB": "Batsman 2"
}
}
  

Из приведенной выше структуры JSON я хочу обновить переменную runs в первом индексе массива BattingDetail.Я не могу решить эту проблему.Может ли кто-нибудь помочь мне решить эту проблему.

Комментарии:

1. не могли бы вы объяснить свою ситуацию, например, вы создаете json или получаете json с сервера?

2. вам нужно изменить значения и отправить обратно в api для обновления…

3. @IllegalArgument я создан статическим способом не с сервера.

4. @mona am создал этот json статическим способом. сначала я создал структуру json в одном действии, и я хочу обновить структуру json в другом действии.

5. хорошо, я хочу сказать, что когда вы проанализируете jaon, вы получите данные, скажем, в arraylist .. затем вы выполните некоторую операцию в arraylist и измените значения… затем этот arraylist вам нужно сформировать json и передать его другому действию

Ответ №1:

Если вы используете JSONObject из http://developer.android.com/reference/org/json/JSONObject.html

Получите соответствующий JSONObject из BattlingDetail JSONArray. Или выполните итерацию по массиву, в зависимости от того, что вам нужно. Удалите текущее значение. Вместо этого поместите другое.

 JSONObject object = array.getJSONObject[0];
object.remove("runs");
object.put("runs", 100);