<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Javascript on DoDoRo的梦想空间-码农,数学,算法,哲学,园艺</title>
    <link>https://dodoro.chouxiangpai.com/tags/javascript/</link>
    <description>Recent content in Javascript on DoDoRo的梦想空间-码农,数学,算法,哲学,园艺</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 29 Oct 2012 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://dodoro.chouxiangpai.com/tags/javascript/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>推荐一个javascript类库:jsonpath</title>
      <link>https://dodoro.chouxiangpai.com/archives/254/</link>
      <pubDate>Mon, 29 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://dodoro.chouxiangpai.com/archives/254/</guid>
      <description>&lt;p&gt;在我们的研发过程中，有时会遇到这样的情况：程序很简单，数据是固定的，不想使用服务端语言(php、java、.net)，但是要实现一些分页和检索功能。这种情况下我们应该选择javascript+xml+div就ok，不过javascript解析xml的数据比较慢。json是现在非常流行的一种数据格式，所以有另外一种解决方案：javascript+json+div。&lt;/p&gt;
&lt;p&gt;json是目前web的通用数据格式，在轻量级的web服务中占据主导地位，这里推荐一个非常轻巧的类库：jsonpath(下载地址：&lt;a href=&#34;http://code.google.com/p/jsonpath/&#34;&gt;http://code.google.com/p/jsonpath/&lt;/a&gt;)。作为一个轻量级类库，你可以使用它来对json数据进行精确查找、条件查找和模糊查找，这样就能满足简单网站的功能了。下面是一个简单例子： &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; JSONPath - Example (js)&lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt;    var json =                   { &amp;ldquo;store&amp;rdquo;: {                         &amp;ldquo;book&amp;rdquo;: [                           { &amp;ldquo;category&amp;rdquo;: &amp;ldquo;reference&amp;rdquo;,                                 &amp;ldquo;author&amp;rdquo;: &amp;ldquo;Nigel Rees&amp;rdquo;,                                 &amp;ldquo;title&amp;rdquo;: &amp;ldquo;Sayings of the Century&amp;rdquo;,                                 &amp;ldquo;price&amp;rdquo;: 8.95                           },                           { &amp;ldquo;category&amp;rdquo;: &amp;ldquo;fiction&amp;rdquo;,                                 &amp;ldquo;author&amp;rdquo;: &amp;ldquo;Evelyn Waugh&amp;rdquo;,                                 &amp;ldquo;title&amp;rdquo;: &amp;ldquo;Sword of Honour&amp;rdquo;,                                 &amp;ldquo;price&amp;rdquo;: 12.99                           },                           { &amp;ldquo;category&amp;rdquo;: &amp;ldquo;fiction&amp;rdquo;,                                 &amp;ldquo;author&amp;rdquo;: &amp;ldquo;Herman Melville&amp;rdquo;,                                 &amp;ldquo;title&amp;rdquo;: &amp;ldquo;Moby Dick&amp;rdquo;,                                 &amp;ldquo;isbn&amp;rdquo;: &amp;ldquo;0-553-21311-3&amp;rdquo;,                                 &amp;ldquo;price&amp;rdquo;: 8.99                           },                           { &amp;ldquo;category&amp;rdquo;: &amp;ldquo;fiction&amp;rdquo;,                                 &amp;ldquo;author&amp;rdquo;: &amp;ldquo;J. R. R. Tolkien&amp;rdquo;,                                 &amp;ldquo;title&amp;rdquo;: &amp;ldquo;The Lord of the Rings&amp;rdquo;,                                 &amp;ldquo;isbn&amp;rdquo;: &amp;ldquo;0-395-19395-8&amp;rdquo;,                                 &amp;ldquo;price&amp;rdquo;: 22.99                           }                         ],                         &amp;ldquo;bicycle&amp;rdquo;: {                           &amp;ldquo;color&amp;rdquo;: &amp;ldquo;red&amp;rdquo;,                           &amp;ldquo;price&amp;rdquo;: 19.95                         }                   }                 },        var test1 = jsonPath(json, &amp;ldquo;$.store.book[*].author&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;gt;&amp;rdquo;;//精确检索        var test2 = jsonPath(json, &amp;ldquo;$..author&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test3 = jsonPath(json, &amp;ldquo;$.store.*&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test4 = jsonPath(json, &amp;ldquo;$.store..price&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test5 = jsonPath(json, &amp;ldquo;$..book[(@.length-1)]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test6 = jsonPath(json, &amp;ldquo;$..book[-1:]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test7 = jsonPath(json, &amp;ldquo;$..book[0,1]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test8 = jsonPath(json, &amp;ldquo;$..book[:2]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test9 = jsonPath(json, &amp;ldquo;$..book[?(@.isbn)]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;        var test10 = jsonPath(json, &amp;ldquo;$..book[?(@.price&amp;lt;10)]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;//条件建设        var test11 = jsonPath(json, &amp;ldquo;$..*&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;//所有        var test12 = jsonPath(json, &amp;ldquo;$..book[?(@.title.indexOf(&amp;rsquo;the&amp;rsquo;) &amp;gt; -1)]&amp;rdquo;).toJSONString() + &amp;ldquo;\n&amp;rdquo;;  &lt;!-- raw HTML omitted --&gt;//模糊检索 &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt; &lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
