Reputation: 364
I have this JSONArray data
and within it, there is a single object. The prop
element in this object contains a String that looks like a Json response as shown below. How can I iterate through all that String possibly come up with a JSONArray?
I am aware that the response I am getting is not an array, but I have no control over that.
"data": [
{
"prop": "{\"Name\":\"StockoutTransferDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"LoadBearing\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCBOOLEAN\",\"value\":true},\"Unit\":\"$\"},{\"Name\":\"StockoutDeliveryDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Status\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"OnTransport\"},\"Unit\":\"$\"},{\"Name\":\"Tracked\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"true\"},\"Unit\":\"$\"},{\"Name\":\"StockoutReturnDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"IsExternal\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCBOOLEAN\",\"value\":false},\"Unit\":\"$\"},{\"Name\":\"PlannedStockoutDeliveryDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"10-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"StockinReturnLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"PlannedAssemblyDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"27-04-2019\"},\"Unit\":\"$\"},{\"Name\":\"StockoutTransferLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinReturnDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"FabricatedLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinArrivalLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinTransferDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Reference\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCIDENTIFIER\",\"value\":\"300 x 350\"},\"Unit\":\"$\"},{\"Name\":\"PlannedStockinArrivalDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"11-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"PlannedFabricatedDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"01-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"AssemblyDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Slope\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCPLANEANGLEMEASURE\",\"value\":\"0\",\"orig_value\":\"0.\"},\"Unit\":\"$\"},{\"Name\":\"FabricatedDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockoutReturnLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Span\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCPOSITIVELENGTHMEASURE\",\"value\":\"4750\",\"orig_value\":\"4750.\"},\"Unit\":\"$\"},{\"Name\":\"StockinArrivalDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockoutDeliveryLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Status\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"Assembled\"},\"Unit\":\"$\"}"
}
],
The snippet of my code is:
JSONArray jsonArray = response.getJSONArray("data");
JSONObject data = jsonArray.getJSONObject(0);
String prop = data.getString("prop");
JSONArray jsonArray1 = new JSONArray(prop);
I am getting the error org.json.JSONException: Value {"Name":"StockTransferLocation","Description":"$","NominalValue":{"type":"IFCTEXT","value":"East"},"Unit":"$"} of type org.json.JSONObject cannot be converted to JSONArray
Thanks in advance!
Upvotes: 1
Views: 122
Reputation: 351
Just add a square bracket to the start and end of the String, and then try to convert it to JSONArray.
"data": [
{
"prop": "[{\"Name\":\"StockoutTransferDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"LoadBearing\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCBOOLEAN\",\"value\":true},\"Unit\":\"$\"},{\"Name\":\"StockoutDeliveryDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Status\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"OnTransport\"},\"Unit\":\"$\"},{\"Name\":\"Tracked\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"true\"},\"Unit\":\"$\"},{\"Name\":\"StockoutReturnDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"IsExternal\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCBOOLEAN\",\"value\":false},\"Unit\":\"$\"},{\"Name\":\"PlannedStockoutDeliveryDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"10-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"StockinReturnLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"PlannedAssemblyDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"27-04-2019\"},\"Unit\":\"$\"},{\"Name\":\"StockoutTransferLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinReturnDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"FabricatedLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinArrivalLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockinTransferDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Reference\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCIDENTIFIER\",\"value\":\"300 x 350\"},\"Unit\":\"$\"},{\"Name\":\"PlannedStockinArrivalDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"11-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"PlannedFabricatedDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"01-03-2019\"},\"Unit\":\"$\"},{\"Name\":\"AssemblyDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Slope\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCPLANEANGLEMEASURE\",\"value\":\"0\",\"orig_value\":\"0.\"},\"Unit\":\"$\"},{\"Name\":\"FabricatedDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockoutReturnLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Span\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCPOSITIVELENGTHMEASURE\",\"value\":\"4750\",\"orig_value\":\"4750.\"},\"Unit\":\"$\"},{\"Name\":\"StockinArrivalDate\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"StockoutDeliveryLocation\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"\"},\"Unit\":\"$\"},{\"Name\":\"Status\",\"Description\":\"$\",\"NominalValue\":{\"type\":\"IFCTEXT\",\"value\":\"Assembled\"},\"Unit\":\"$\"}]"
}
],
Upvotes: 2