2015-04-23 24 views
0

我有这样的JSON模式:

{ 
    "name":"Myname", 
    "Job":"Myjob", 
    "item":{ 
     "$ref": "#/definitions/address" 
    }, 
    "definitions": 
    { 
     "address": 
     { 
      "street":"My street", 
      "postalCode":"11111" 
     } 
    } 
} 

我想知道是否有在JS的方式直接访问到地址属性的内容,并通过阅读其“item”属性中存在的参考号/定义/地址。 所以我会为JSON对象的结果:

 "address": 
     { 
      "street":"My street", 
      "postalCode":"11111" 
     } 
+0

通过'#/定义/ address',你的意思是一个URL模式?像路由? –

+0

我想到了像URL路由这样的东西。您应该执行'$ ref',用'.'替换'/',然后访问'地址'数据。请务必跳过'#' –

+0

我刚更新了这个问题。 我需要的是一个Java脚本解决方案。 –

回答

0

,如果你正试图从定义索引,这是在你的地址索引简称访问地址对象,我想你可以用这样的方式

fiddle demo

var object = { 
    "name":"Myname", 
    "Job":"Myjob", 
    "address":{ 
     "$ref": "#/definitions/address" 
    }, 
    "definitions": 
    { 
     "address": 
     { 
      "street":"My street", 
      "postalCode":"11111" 
     } 
    } 
}; 

var add_ref = object.address.$ref.split('/'); 

console.log(object[add_ref[1]][add_ref[2]]); 
+0

谢谢你的回答。但是我给你的Json模式只是一个例子。我会更普遍的东西。路径可以以3或4“子路径”的形式出现,例如可以是#/ path1/path2/path3或#/ path1或#/ path1/path2/path3/path4或任何其他方式。我认为有一种方法可以直接访问js的引用,否则我会开发一个js函数来完成它。 –