Ответ 1
var obj = JSON.parse(string);
Где string
- ваша строка json.
Как вы думаете, что JSON является JSON?
У меня есть функция, которая работает только при передаче объекта JSON. Если я передам ему строку, в том же формате, что и JSON, это не сработает. Поэтому я хочу, чтобы эта функция считала, что строка, переданная ей, является JSON. Строка действительно находится в формате JSON.
Я также пробовал следующее. Я ввел строку через Ajax, с параметром "handle as" как "JSON", а затем, когда я передал результат функции, она работает.
Итак, я понял, что проблема связана не с строкой. Как преобразовать эту строку в JSON? Если я получаю такую же строку через ajax-запрос, а затем передаю ее функции, тогда как прямое ее прохождение не работает.
Строка выглядит следующим образом:
{
"data": [
{
"id": "id1",
"fields": [
{
"id": "name1",
"label": "joker",
"unit": "year"
},
{"id": "name2", "label": "Quantity"},
],
"rows": [ data here....
and closing braces..
var obj = JSON.parse(string);
Где string
- ваша строка json.
Вы можете использовать JSON.parse()
для этого.
Пример:
var myObj = JSON.parse('{"p": 5}');
console.log(myObj);
У меня была такая же проблема с похожей строкой, как у вас
{id:1,field1:"someField"},{id:2,field1:"someOtherField"}
Проблема здесь - структура строки. Парсер json не распознал, что ему нужно создать 2 объекта в этом случае. То, что я сделал, было глупо, я просто перестроил свою строку и добавил []
с этим, что парсер распознал
var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"}
myString = '[' + myString +']'
var json = $.parseJSON(myString)
Надеюсь, это поможет,
Если у кого-то есть более элегантный подход, пожалуйста, поделитесь.
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );
ссылка: -
var Data=[{"id": "name2", "label": "Quantity"}]
Передайте строковую переменную в Json parse:
Objdata= Json.parse(Data);
преобразовать строку в HashMap, используя Object Mapper...
new ObjectMapper().readValue(string, Map.class);
Внутренне карта будет вести себя как объект JSON
Просто используйте функцию eval
.
var myJson = eval(theJsibStr);
JSON.parse()
будет делать.
или
Использование JQuery,
var obj = jQuery.parseJSON( '{ "name": "Vinod" }' );
alert( obj.name === "Vinod" );
Давайте рассмотрим, что у вас есть строка типа
пример: "имя: Люси, возраст: 21, пол: женщина"
function getJsonData(query){
let arrayOfKeyValues = query.split(',');
let modifiedArray = new Array();
console.log(arrayOfKeyValues);
for(let i=0;i< arrayOfKeyValues.length;i++){
let arrayValues = arrayOfKeyValues[i].split(':');
let arrayString ='"'+arrayValues[0]+'"'+':'+'"'+arrayValues[1]+'"';
modifiedArray.push(arrayString);
}
let jsonDataString = '{'+modifiedArray.toString()+'}';
let jsonData = JSON.parse(jsonDataString);
console.log(jsonData);
console.log(typeof jsonData);
return jsonData;
}
let query = "name:lucy,age:21,gender:female";
let response = getJsonData(query);
console.log(response);