コミュニティアチーブメントバーを展開する。

Submissions are now open for the 2026 Adobe Experience Maker Awards.

Mark Solution

この会話は、活動がないためロックされています。新しい投稿を作成してください。

解決済み

Iterate over the JSON object elements in sling model

Avatar

Level 2

I have the following JSON Object

import org.json.JSONObject;

JSONObject jsonObject = new JSONObject("jsonString")

 

The output of the above jsonObject follows:

{
  "elements": {
    "barType": "bar",
    "website": "website",
    "endDate": "end",
    "fooText": "text",
    "fooDisclaimer": "Disclaimer",
    "type": "type",
    "fooPage": {
      "string": "string",
      "value": [
        {
          "number": "2",
          "pagePath": "/foo/bar/home/selector/extension"
        },
        {
          "number": "5",
          "pagePath": "/foo/bar"
        }
      ]
    },
    "fooTitle": "Title",
    "locations": "locations"
  },
  "items": "items"
}

 

Now I want to perform following steps:

  1. Create a new JSON object

  2. iterate over the "elements" node in the above json object (jsonObject)

    • Copy the child elements to the new JSON object if name is barType or names starts with foo, but not fooPage
    • If name = fooPage:
      • iterate over the values to find one where pagePath = currentPageURL add a new property called fooPriority to the new JSON object with the value from the number

Note: currentPageURL = "/foo/bar"

 

The expected output of new JSON object would be:

{
  "barType": "bar",
  "fooText": "text",
  "fooDisclaimer": "Disclaimer",
  "fooPriority": 5,
  "fooTitle": "Title",
  "locations": "locations"
}

Please help me with the implementation of Java code by using org.json.JSONObject;

Thanks in advance

1 受け入れられたソリューション

Avatar

正解者
Community Advisor

Please check examples here https://www.geeksforgeeks.org/parse-json-java/ which gives an idea on reading and creating new objects, so that you can write your code based on your json object structure. Hope this helps. 

元の投稿で解決策を見る

3 返信

Avatar

正解者
Community Advisor

Please check examples here https://www.geeksforgeeks.org/parse-json-java/ which gives an idea on reading and creating new objects, so that you can write your code based on your json object structure. Hope this helps. 

Avatar

Level 2

Thanks @Siva_Sogalapalli 

Could you please help me, how to get JSON Objects based on prefix words in the key?

 

ex: 

  • Copy the child elements to the new JSON object if name is barType or names starts with foo, but not fooPage

Avatar

Community Advisor

You can try in different ways based on your requirement & needs.

For example, if the keys are always same and very few, then you can directly get it using key names like

JSONObject jo = (JSONObject) obj;
String barType = (String) jo.get("barType");
String foo = (String) jo.get("foo");

Alternatively, you can also store all the keys in array which you want to read and iterate the array to get all the keys so that you can read the same from json object. Just look for java examples and use the same in sling model should work for you.