2015-12-17 3 views
2

Я следующую структуру JSONДобавить ключ с массива JSON по пути

[ 
    { 
    "key": "val", 
    "type": "myType", 
    "someSubJson": { 
     "key": "val" 
    } 
    }, 
    { 
    "key": "val", 
    "type": "myType" 
    } 
] 

мне нужно добавить новый ключ «Myname» со значением [ «1», «2»] в какой-то узел. Например результат JSON будет как:

[ 
    { 
    "key": "val", 
    "type": "myType", 
    "someSubJson": { 
     "key": "val" 
    }, 
    "myName": ["1", "2"] 
    }, 
    { 
    "key": "val", 
    "type": "myType" 
    } 
] 

Я попытался com.jayway.jsonpath, но он не работает, когда мое значение массива. Может, какой-то другой способ это сделать или я что-то упускаю?

Благодаря

PS

Вот некоторые примеры кода я пытаюсь запустить

private String insertValue(String rawJson, String xpath) { 
    JSONArray arr = new JSONArray(new int[]{1,2}); 
    rawJson = JsonPath.parse(rawJson).put(xpath, "myName", arr).jsonString(); 
    return rawJson; 
} 

В ключе Myname я exptect, чтобы получил мой массив, но получаю "Myname": {}

+0

Делитесь своим кодом, который не работает – sidgate

+0

@sidgate см. Обновленное сообщение –

ответ

-1

Я бы предложил использовать Джексон вместо JayWay. У Джексона есть много возможностей играть с объектами Jayson JSON.

+0

Jackson - это работа, чтобы работать с POJO, представляющим json. Это не мое дело. Мне нужно работать с raw json, используя xpath, чтобы изменить его. –

+0

Я думаю, что вы ошиблись. Вы можете играть с простым JSON. Есть что-то, называемое «слияние», вот что вам нужно искать. –

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