Shubham Jain
Shubham Jain

Reputation: 17553

how to update object inside object JSON using java and then send to request payload

I am reading a JSON object from file.

I am able to read the value but how can I update the code value for my payload

{
    "products": {
        "productsApp15": {
            "status": "active",
            "attribute_set": "Apparel",
            "name": "productsApp16",
            "product_type": "product",
            "code": "productsApp16"
        }
    }
}

Import I am using:-

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.util.Iterator;
import java.io.FileWriter;
import javax.json.JsonValue;
import org.json.simple.JSONArray;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

My Code:-

// read the json file
            FileReader reader = new FileReader(filePath);

            JSONParser jsonParser = new JSONParser();
            JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

            JSONObject jsonObject1 = (JSONObject) jsonObject.get("products");
            JSONObject jsonObject2 = (JSONObject)jsonObject1.get("productsApp15");
            String firstName = (String) jsonObject2.get("code").toString();

            System.out.println("The first name is: " + firstName);

But this value is not changing my require data

Upvotes: 1

Views: 1942

Answers (3)

Rama Krishna
Rama Krishna

Reputation: 120

public void replaceJson() throws JSONException { String json = "{\"products\": {\"productsApp15\": {\"status\": \"active\",\"attribute_set\": \"Apparel\", \"name\": \"productsApp16\", \"product_type\": \"product\", \"code\": \"productsApp16\" } }}";

   JSONObject jsonObject = new JSONObject(json);
   JSONObject jsonObject1 = (JSONObject) jsonObject.get("products");
   JSONObject jsonObject2 = (JSONObject)    jsonObject1.get("productsApp15");
         jsonObject2.put("code", "try");
          System.out.println(jsonObject.toString()); 
}'

Upvotes: 1

Shubham Jain
Shubham Jain

Reputation: 17553

Below code is working for me:-

FileReader reader = new FileReader(filePath);

    JSONParser jsonParser = new JSONParser();
    JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

    JSONObject jsonObject1 = (JSONObject) jsonObject.get("products");
    JSONObject jsonObject2 = (JSONObject)jsonObject1.get("productsApp15");
    String firstName = (String) jsonObject2.get("code").toString();

    System.out.println("The first name is: " + firstName);

    jsonObject2.remove("code");
    jsonObject2.put("code", "try");

    JSONObject jsonObject3 = (JSONObject)jsonObject1.get("productsApp15");
    String firstName2 = (String) jsonObject2.get("code").toString();
    System.out.println("The first name is: " + firstName2);

Thanks to Rama Krishan

Upvotes: 2

Rama Krishna
Rama Krishna

Reputation: 120

try this

   JSONObject jsonObject1 = (JSONObject) jsonObject.get("products");
   JSONObject jsonObject2 = (JSONObject)jsonObject1.get("productsApp15");
   String firstName = (String) jsonObject2.get("code").toString();

Upvotes: 3

Related Questions