Get Field Name

by dshilkret

HTML

<script>
!function(a){var b=Function("return this")()||(0,eval)("this");"function"==typeof define&&define.amd?define(["jsonq"],function(c){return b.jsonQ=a()}):"object"==typeof module&&module.exports?module.exports=a():b.jsonQ=a()}(function(undefined){function matchPath(a,b){var c=new RegExp("^"+a.join("~~"),"i");return c.test(b.join("~~"))}function newFormat(a){var b=a.keyAdded||[],c=a.json,d=a.path,e=a.newJson;return jsonQ.each(c,function(a,f){var g=d?JSON.parse(JSON.stringify(d)):[];g.push(a),"object"==objType(c)&&(b.indexOf(a)==-1&&(b.push(a),e.jsonQ_path[a]=[]),e.jsonQ_path[a].push({path:g}));var h=objType(f);"object"!=h&&"array"!=h||newFormat({json:f,newJson:e,path:g,keyAdded:b})}),e}var jsonQ=function(a){return new jsonQ.fn.init(a)},error=function(a){throw a},stringify=JSON.stringify,parse=JSON.parse;jsonQ.settings={sort:{order:"ASC",logic:function(a){return a},caseIgnore:!0,allLevel:!0}};var tFunc={topLevel:function(a){for(var b=this.jsonQ_current,c=this.cloneObj(jsonQ()),d=c.jsonQ_current=[],e="",f=a.key,g=a.method,h=0,i=b.length;h<i;h++){var k,j=b[h].path,l=!1,m=j.concat([]);if("parent"==g)0===m.length?l=!0:m.pop();else{var n=m.lastIndexOf(f);n==-1?l=!0:m=m.slice(0,n+1)}k=JSON.stringify(m),e==k||l||d.push({path:m}),e=k}return c.length=d.length,c.selector.push({method:g,key:f}),c},qualTrv:function(a){for(var b=this.jsonQ_current,c=this.cloneObj(jsonQ()),d=c.jsonQ_current=[],e=this.jsonQ_path,f=a.key,g=jsonQ.clone(e[f])||[],h=a.qualifier,i=objType(h),j=a.method,k="find"==j,l=0,m=b.length;l<m;l++){var n=b[l].path,o=[],p=!1;if(!k){if(0===n.length)continue;o=n.concat([]),o.pop()}for(var q=0;q<g.length;q++){var s,r=g[q].path;if(k)s=matchPath(n,r);else{var t=r.concat([]);t.pop(),s=o.join()==t.join()}if(s){var u=tFunc.qTest.call(this,i,h,r,d);u&&(g.splice(q,1),q--),p=!0}else if(p)break}}return"string"==i&&(c=this.filter.call(c,h)),c.length=c.jsonQ_current.length,c.selector.push({method:j,key:f,qualifier:h}),c},qTest:function(a,b,c,d){var...