简体   繁体   中英

Parse.com add JSON Object to JSON Array

My problem is simple, I'd like to add a JSONObject to a JSONArray that I store in a MongoDB database. I can easily add all types of data like Strings , Ints etc but not JSONObjects . I do this in my code :

public void done(ParseObject lan, ParseException e) {
    if(e==null){
       JSONObject object = new JSONObject();
       try{                                                   
            object.put("PlayerName","John");
            object.put("ID",514145);                                                  
            lan.add("Participants",object); //nothing gets inserted
            lan.add("Participants",15); //works fine
            lan.add("Participants",JSONObject.null); //works fine too
          }catch (JSONException error){

          }

          lan.increment("Number");
          lan.saveInBackground();
   }else{
          Log.i("Parse Error","error");
   }
}

But nothing appears in my db and there's no error thrown. Do you guys have any clue on how to do that ?

Try using object.toString() instead of object .

lan.add("Participants", object.toString());

JSON:

{"Participants":["{\"PlayerName\":\"John\",\"ID\":514145}"]}

To parse this JSON try this:

JSONObject jsonObj = new JSONObject(YOUR_JSON_STRING);

// Participants
JSONArray participantsJsonArray = jsonObj.getJSONArray("Participants");

// Participant
JSONObject participanJsonObject = participantsJsonArray.getJSONObject(0);

// PlayerName
String playerName = participanJsonObject.getString("PlayerName");
// ID
String id = participanJsonObject.getInt("ID");

Hope this will help~

Convert that Json Object into String and store it in string format

lan.add("Participants",object.toString());

And when you want to use that you can easily convert it into Json Object again like this

JSONObject jObj=new JSONObject("Your Json String");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM