{ "_embedded" : { "document" : [ { "businessId" : "18749116-1-56", "dateReception" : "2017-08-16T22:18:56.772+0000", "type" : "ARTMAG", "sequence" : 367, "replayDate" : "2017-08-18T05:23:44.362+0000", "rejectsNumber" : 3, "status" : 303, "errorCode" : "OPI_1001", "lastUpdate" : "2017-08-17T22:52:36.522+0000", "_links" : { "self" : { "href" : "#" }, "docArtMag" : { "href" : "#" } } }, { "businessId" : "18749116-1-79", "dateReception" : "2017-08-16T22:18:56.756+0000", "type" : "ARTMAG", "sequence" : 367, "replayDate" : "2017-08-18T05:23:44.370+0000", "rejectsNumber" : 3, "status" : 303, "errorCode" : "OPI_1001", "lastUpdate" : "2017-08-17T22:52:36.541+0000", "_links" : { "self" : { "href" : "#" }, "docArtMag" : { "href" : "#" } } } ] }, "_links" : { "first" : { "href" : "#" }, "self" : { "href" : "#" }, "next" : { "href" : "#" }, "last" : { "href" : "#" } }, "page" : { "size" : 10, "totalElements" : 35078, "totalPages" : 3508, "number" : 0 } } - What is the difficulty that you want to get in the end? - edem
|
2 answers
"Properly parsed" does not depend on the depth of nesting.
var data = JSON.parse($("div").text()); console.log(data.page); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> { "_embedded" : { "document" : [ { "businessId" : "18749116-1-56", "dateReception" : "2017-08-16T22:18:56.772+0000", "type" : "ARTMAG", "sequence" : 367, "replayDate" : "2017-08-18T05:23:44.362+0000", "rejectsNumber" : 3, "status" : 303, "errorCode" : "OPI_1001", "lastUpdate" : "2017-08-17T22:52:36.522+0000", "_links" : { "self" : { "href" : "#" }, "docArtMag" : { "href" : "#" } } }, { "businessId" : "18749116-1-79", "dateReception" : "2017-08-16T22:18:56.756+0000", "type" : "ARTMAG", "sequence" : 367, "replayDate" : "2017-08-18T05:23:44.370+0000", "rejectsNumber" : 3, "status" : 303, "errorCode" : "OPI_1001", "lastUpdate" : "2017-08-17T22:52:36.541+0000", "_links" : { "self" : { "href" : "#" }, "docArtMag" : { "href" : "#" } } } ] }, "_links" : { "first" : { "href" : "#" }, "self" : { "href" : "#" }, "next" : { "href" : "#" }, "last" : { "href" : "#" } }, "page" : { "size" : 10, "totalElements" : 35078, "totalPages" : 3508, "number" : 0 } } </div> - thanks, that is necessary - Alexey Fedorov
- @ Aleksey Fedorov Not at all. Successes! - Igor
|
Getting a javascript object from a json string does not depend on nesting levels. The main thing is that the json-string is valid .
The main method in JS is JSON.parse('{"стока":"json"}') .
But if you also need to get the property values as a date ( replayDate and lastUpdate ), then you need to use the second optional argument of the JSON.parse method, which is a function function(key, value) :
// В js необходимо экранировать перенос строк обратным слешем var jsonStr = ' \ { \ "_embedded" : { \ "document" : [ \ { \ "businessId" : "18749116-1-56", \ "dateReception" : "2017-08-16T22:18:56.772+0000", \ "type" : "ARTMAG", \ "sequence" : 367, \ "replayDate" : "2017-08-18T05:23:44.362+0000", \ "rejectsNumber" : 3, \ "status" : 303, \ "errorCode" : "OPI_1001", \ "lastUpdate" : "2017-08-17T22:52:36.522+0000", \ "_links" : { \ "self" : { \ "href" : "#" \ }, \ "docArtMag" : { \ "href" : "#" \ } \ } \ }, \ { \ "businessId" : "18749116-1-79", \ "dateReception" : "2017-08-16T22:18:56.756+0000", \ "type" : "ARTMAG", \ "sequence" : 367, \ "replayDate" : "2017-08-18T05:23:44.370+0000", \ "rejectsNumber" : 3, \ "status" : 303, \ "errorCode" : "OPI_1001", \ "lastUpdate" : "2017-08-17T22:52:36.541+0000", \ "_links" : { \ "self" : { \ "href" : "#" \ }, \ "docArtMag" : { \ "href" : "#" \ } \ } \ } \ ] \ }, \ "_links" : { \ "first" : { \ "href" : "#" \ }, \ "self" : { \ "href" : "#" \ }, \ "next" : { \ "href" : "#" \ }, \ "last" : { \ "href" : "#" \ } \ }, \ "page" : { \ "size" : 10, \ "totalElements" : 35078, \ "totalPages" : 3508, \ "number" : 0 \ } \ }'; // получим объект из json var obj = JSON.parse(jsonStr, function(key,value){ // Если ключ объекта - дата if (key == 'replayDate' || key == 'lastUpdate') { return new Date(value); } return value; }); // получим поле с датой console.log( obj._embedded.document[0].replayDate.getDate() ); // получим "глубокий" элемент console.log( obj._embedded.document[0]._links.self.href ) Source - learn.javascript.ru
|