2016-06-17 9 views
0

My Json выглядит примерно так:Изменение значения 1 из атрибута JSON во время выполнения в Java

{ 
"source": "somedatabasename", 
"lisofobjects": [{ 
    "data": { 
     "starttime": "145756767377", 
     "age": "20", 
     "name": "xyz" 
    } 
}] 

}

В рамках проверки моего API я хочу передать строку в возрастный атрибут, например, возраст: «xyz». Я создал POJO объекты и разбора JSON с помощью gson.I хотите знать, как я должен setvalueof возраст runtime.So мой код запроса выглядит следующим образом:

protected RequestSpecification abc(classnamefromwherejsonisparsed object) 
      throws JsonSyntaxException, FileNotFoundException, IOException { 
      RequestSpecBuilder builder = new RequestSpecBuilder(); 

      builder.setContentType(ContentType.JSON); 
      builder.setBody(object.toJson(object.getallTestData())); 

Таким образом, здесь с getallTestData Я хочу изменить только значение 1 например, возраст здесь. что-то вроде object.setAge ("abc")

+0

Я не уверен, что я точно следую. Вы упомянули, что у вас есть POJO: не можете ли вы просто называть 'setAge (42)' на этом объекте, а затем сериализовать его (или объект, который его содержит) в JSON? – ck1

+0

I ca call setAge (24), но дело в том, что я не понимаю, как я звоню, поскольку я передаю объект jsonbody, как этот builder.setBody (object.toJson (object.getallTestData())) и не уверен, как переопределить Значение setAge из существующего JSON – Techie

ответ

0

Если я правильно вас понял, вам нужно сгенерировать различные недопустимые тестовые данные из образца json. В этом случае эта работа:

import com.google.gson.Gson; 
import com.google.gson.JsonObject; 
import com.google.gson.JsonParser; 

... 

String json = 
     "{\n" + 
     "\"source\": \"somedatabasename\",\n" + 
     "\"lisofobjects\": [{\n" + 
     " \"data\": {\n" + 
     "  \"starttime\": \"145756767377\",\n" + 
     "  \"age\": \"20\",\n" + 
     "  \"name\": \"xyz\"\n" + 
     " }\n" + 
     "}]" + 
     "}"; 

JsonParser parser = new JsonParser(); 
JsonObject rootObject = parser.parse(json).getAsJsonObject(); 

JsonObject firstData = rootObject.getAsJsonArray("lisofobjects") 
     .get(0).getAsJsonObject().getAsJsonObject("data"); 
firstData.remove("age"); 
firstData.addProperty("age", "abc"); 

String modifiedJson = new Gson().toJson(rootObject); 

 Смежные вопросы

  • Нет связанных вопросов^_^