{"id":200770,"date":"2013-11-04T18:39:03","date_gmt":"2013-11-04T14:39:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=200770"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=200770","title":{"rendered":"<span class=\"post_title\">\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 Open XML Excel \u0432 JavaScript<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u0432 \u043d\u0430\u0448 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SaaS-\u0441\u0435\u0440\u0432\u0438\u0441 \u00ab\u041c\u0443\u0440\u0430\u0432\u044c\u0438\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430\u00bb \u0438\u0437 Excel \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c web-\u0431\u0440\u0430\u0443\u0437\u0435\u0440. \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0449\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u044e\u0431\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0437\u0430\u043b\u0438\u0442\u044c \u0432 \u0411\u0414. \u041d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u043d\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u0432\u0441\u0435\u043c\u0438 \u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0435 HTML5 FileAPI \u0438 Drag and Drop.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041a\u043d\u0438\u0433\u0430 Ex\u0441el \u2013 \u044d\u0442\u043e ZIP \u0430\u0440\u0445\u0438\u0432 \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 XML \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/office\/ee358824.aspx\">Open XML<\/a>. \u041f\u0430\u0440\u0441\u0438\u0442\u044c XML \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0443\u043c\u0435\u0435\u0442 jQuery, \u0430 \u0432\u043e\u0442 \u0437\u0438\u043f\u043f\u0438\u0442\u044c \u043d\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0441\u0435\u0442\u0438 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 zip.js, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u0441 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430:  <\/p>\n<pre><code class=\"html\">&lt;div class=&quot;main&quot;&gt;     &lt;progress id=&quot;progress&quot;&gt;&lt;\/progress&gt;     &lt;div class=&quot;filedrag&quot; id=&quot;comps&quot;&gt;\u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043b &lt;span class=&quot;red&quot;&gt;\u0441\u044e\u0434\u0430&lt;\/span&gt;&lt;\/div&gt;     &lt;div class=&quot;result&quot;&gt;&lt;\/div&gt; &lt;\/div&gt; <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"javascript\">var c = document.getElementById(&quot;comps&quot;),     FileDragHover = function (e) {      e.stopPropagation();      e.preventDefault();      if(e.target.id==='comps')        e.target.className = (e.type == &quot;dragover&quot; ? &quot;filedrag hover&quot; : &quot;filedrag&quot;);      else        c.className = (e.type == &quot;dragover&quot; ? &quot;filedrag hover&quot; : &quot;filedrag&quot;);     }     c.addEventListener(&quot;drop&quot;, function(e){     e.preventDefault();      c.className = &quot;filedrag&quot;;     var files = e.target.files || e.dataTransfer.files;     for (var i = 0, f; f = files[i]; i++) {         if(f.name.toLowerCase().indexOf('xlsx')&lt;=0) {             alert('\u042d\u0442\u043e \u043d\u0435 \u0444\u0430\u0439\u043b Excel');         } else {             zip.createReader(new zip.BlobReader(f), function(reader) {                 \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0430\u0440\u0445\u0438\u0432\u0430                 reader.getEntries(function(entries) {                    \/\/ \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0430\u0440\u0445\u0438\u0432\u0430 Excel                    console.info(entries)                    return false;                });             }, function(error) {                 alert(&quot;\u041e\u0448\u0438\u0431\u043a\u0430: &quot; + error)             });         }     }      return false; }, false);  c.addEventListener(&quot;dragover&quot;, FileDragHover, false); c.addEventListener(&quot;dragleave&quot;, FileDragHover, false); <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"http:\/\/jsfiddle.net\/ant_logist\/zG6GT\/\">\u0442\u0443\u0442<\/a>. \u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 \u0444\u043e\u0440\u043c\u0443.<br \/>  \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0430\u0440\u0445\u0438\u0432\u0430 \u043a\u043d\u0438\u0433\u0438 Excel. \u0421\u0440\u0435\u0434\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0435\u0441\u0442\u044c filename, \u043f\u043e \u043d\u0435\u043c\u0443-\u0442\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0444\u0430\u0439\u043b\u044b XML.<\/p>\n<p>  \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430:  <\/p>\n<ul>\n<li>import.xlsx\\xl\\worksheets\\sheet[N].xlsx<\/li>\n<li>import.xlsx\\xl\\sharedStrings.xml<\/li>\n<\/ul>\n<p>  \u0433\u0434\u0435:<br \/>  sheet[N].xlsx \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043b\u0438\u0441\u0442 Excel, N \u2014 \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432 \u043a\u043d\u0438\u0433\u0435.<br \/>  sharedStrings.xml \u2014 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a, \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043b\u0438\u0441\u0442\u0430.<\/p>\n<p>  \u041e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0441 \u0444\u0430\u0439\u043b\u044b:  <\/p>\n<pre><code class=\"javascript\">\/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0430\u0440\u0445\u0438\u0432\u0430 reader.getEntries(function(entries) {         var a=[],st;         for(var i in entries){                 var e=entries[i];                 var fn=e.filename.toLowerCase();                 if(fn.indexOf(&quot;sheet&quot;)&gt;0){                         a.push(e);                 }                 else if(fn.indexOf(&quot;sharedstring&quot;)&gt;0){                         st=e;                 }         }     \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0432\u0441\u0435\u0445 \u043b\u0438\u0441\u0442\u043e\u0432 \u043a\u043d\u0438\u0433\u0438 Excel     console.info(a)     \/\/ \u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a     console.info(st)     return false; }); <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"http:\/\/jsfiddle.net\/ant_logist\/Y8dz5\/\">\u0442\u0443\u0442<\/a>, \u0437\u0430\u043a\u0438\u043d\u0443\u0432 \u0444\u0430\u0439\u043b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438, \u0434\u043b\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441\u0442\u0440\u043e\u043a \u044d\u0442\u043e \u2014 <i>st t<\/i>, \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u043b\u0438\u0441\u0442\u0435 \u044d\u0442\u043e \u2014 <i>sheetdata row<\/i>.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043b\u0438\u0441\u0442\u0430 Excel:  <\/p>\n<pre><code class=\"javascript\">printExcelData = function(sheets, strings) {         var unzipProgress = document.getElementById(&quot;progress&quot;);     unzipProgress.style.display='block';       strings.getData(new zip.TextWriter(), function(text) {          \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043b\u0438\u0441\u0442\u0430 \u0434\u043b\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u0441 \u0438\u0445 \u043a\u043e\u0434\u0430\u043c\u0438          var i,st=$($.parseXML(decodeURIComponent(escape(text)))).find('si t');          for(i=0;i&lt;st.length;++i)              st[i]=$(st[i]).text();           \/\/ \u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u043b\u0438\u0441\u0442\u044b \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043d\u0443\u0436\u043d\u043e\u0433\u043e          var parseSheet=function(sheet){              var j,i,h,sh,d=[],s;              sheet.getData(new zip.TextWriter(), function(text) {                  \/\/ \u0430 \u0432\u043e\u0442 \u0438 \u043d\u0430\u0448\u0438 \u0437\u0430\u043f\u0438\u0441\u0438                  sh=$($.parseXML(decodeURIComponent(escape(text)))).find('sheetdata row');                   \/\/ \u0434\u0435\u043b\u0430\u0435\u043c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442                  sh.each(function(e){                      var c=$(this).find('c'),ci,v,o={};                      for(i=0;i&lt;c.length;++i){                          ci=$(c[i]);                          v=ci.find('v').text();                          if(ci.attr('t'))                              v=st[v];                          j=ci.attr('r').charCodeAt(0)-65;                          if(h)                              o[h[j]]=v;                          else                              o[j]=v;                      }                      if(h){                          d.push(o)                      } else                          h=o;                  });                   var id_name=&quot;&quot;;                  for(i in h)                      if(h[i]=='Comp_Id'){                          id_name=h[i];                          break;                      }                   \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0435 Comp_Id \u0435\u0441\u0442\u044c \u0432 \u0437\u0430\u043f\u0438\u0441\u0438, \u0437\u043d\u0430\u0447\u0438\u0442 \u043b\u0438\u0441\u0442 \u043d\u0430\u0448                  if(id_name=='Comp_Id') {                      unzipProgress.style.display='none';                       \/\/ \u042d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u0430\u043d\u043d\u044b\u0445                      s=&quot;&quot;;                      for(i=0;i&lt;Object.keys(h).length;i++)                          s+='&lt;th&gt;'+h[i]+'&lt;\/th&gt;';                      $('.result thead tr').append(s)                       \/\/ \u042d\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435                      s=&quot;&quot;;                      for(j=0; j&lt;d.length; j++){                          s+='&lt;tr&gt;';                          for(i=0; i&lt;Object.keys(h).length; i++){                              s+='&lt;td&gt;'+d[j][h[i]].toString()+'&lt;\/td&gt;';                          }                          s+='&lt;\/tr&gt;';                      }                      $('.result tbody').append(s)                      sheets=[];                      return;                  }                   if(sheets.length&gt;0)                      parseSheet(sheets.pop());              }, function(current, total) {                  unzipProgress.value = current;                  unzipProgress.max = total;              });          }          parseSheet(sheets.pop());      }, function(current, total) {          unzipProgress.value = current;          unzipProgress.max = total;      });   } <\/code><\/pre>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/200770\/\"> http:\/\/habrahabr.ru\/post\/200770\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u0432 \u043d\u0430\u0448 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SaaS-\u0441\u0435\u0440\u0432\u0438\u0441 \u00ab\u041c\u0443\u0440\u0430\u0432\u044c\u0438\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430\u00bb \u0438\u0437 Excel \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c web-\u0431\u0440\u0430\u0443\u0437\u0435\u0440. \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0449\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u044e\u0431\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0437\u0430\u043b\u0438\u0442\u044c \u0432 \u0411\u0414. \u041d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u043d\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u0432\u0441\u0435\u043c\u0438 \u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0435 HTML5 FileAPI \u0438 Drag and Drop.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-200770","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/200770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=200770"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/200770\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=200770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=200770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=200770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}