首先,回到第一篇。使用Extapply为Ext对象添加了一些属性,
Extapply(Ext, {
USE_NATIVE_JSON : false,
});
USE_NATIVE_JSON 即为其中之一, 可以使用它来设置是否开启浏览器原始的JSON(即JSONparse,JSONstringify)来解析或反解析。这是ECMA5中加入的,在 字符串转换成JSON的三种方式中已经提到。
该值初始为false,即不开启。设置为true则开启如
ExtUSE_NATIVE_JSON = true;
ExtutilJSON 内部定义了一些私有方法,对外公开的有三个方法
encodeDate 将日期对象转成字符串
encode 将JS对象转成字符串
decode 将字符串转成JS对象
此外,encode和decode分别赋值给了Extencode和Extdecode。如
Extencode = ExtutilJSONencode;
Extdecode = ExtutilJSONdecode;
即开发时可以使用更简短的Extencode和Extdecode而非冗长的ExtutilJSONencode和ExtutilJSONdecode。
获取JSON的值。 就是解析JSON数据
如果是简单的JSON数据, 并且只需要提取少量数据的值, 那么可以使用字符串的 *** 作来实现,比如StringsubString()等
如果是比较复杂的JSON数据,或者需要提取的值比较多, 那么可以使用Gson, FastJSon 等第三方的jar来实现
简单的Demo示例
第三方包使用的是Gson
import comgooglegsonJsonElement;import comgooglegsonJsonObject;
import comgooglegsonJsonParser;
public class GsonTest {
public static void main(String[] args) {
String strJson = "{ \"name\": \"张三\", \"age\": 12 }";
JsonParser parser = new JsonParser();
JsonElement je = parserparse(strJson);
JsonObject jobj = jegetAsJsonObject();//从json元素转变成json对象
String name = jobjget("name")getAsString();//从json对象获取指定属性的值
Systemoutprintln(name);
int age = jobjget("age")getAsInt();
Systemoutprintln(age);
}
}
jq框架下,给个示例,仅供参考:
var objs = $parseJSON('[{"name":"aaa","age":"22"},{"name":"bbb","age":"33"}]');var str = '';
$each(objs, function(k, obj){
str += objname + ' is ' + objage + "\n";
});
alert(str);
private static String Encode() {
JSONObject obj = new JSONObject();
ArrayList<String> array1 = new ArrayList<String>();
array1add("Class A");
array1add("Class B");
objput(CLASS_DIAGRAM_SAME, array1);
ArrayList<String> array2 = new ArrayList<String>();
array2add("Class C");
array2add("Class D");
objput(CLASS_DIAGRAM_1, array2);
ArrayList<String> array3 = new ArrayList<String>();
array3add("Class E");
array3add("Class F");
objput(CLASS_DIAGRAM_2, array3);
return objtoJSONString();
}
//=================================
CLASS_DIAGRAM_SAME等是final字符串,我就不贴了,简单的生成,一看就懂
下面两段是简单的读取,你可以举一反三,很容易明白
//=================================
Systemoutprintln(objget(CLASS_DIAGRAM_SAME));
Systemoutprintln(objget(CLASS_DIAGRAM_1));
Systemoutprintln(objget(CLASS_DIAGRAM_2));
Systemoutprintln("Same classes:");
ArrayList<String> array1 = (ArrayList<String>)objget(CLASS_DIAGRAM_SAME);
for (String same : array1) {
Systemoutprintln(same);
}
为什么要部分读呢?直接用js不来的更快嘛?
var class = eval('(' +json+ ')');
然后classitems[n]ref不就可以了嘛
angularjs读取json中的某个字段的方法是利用json的api实现的。
思路:先把js字符串转化成json结构,然后利用取属性运算符获取各个属性。
1、例如有以下json数据:
var data = {
"resultList": [
"{\"lookupKey\":2,\"clientKey\":1,\"codeName\":\"ApplicationAppType\",\"codeValue\":\"ApplicationType2\",\"codeDesc\":\"##\",\"updatedBy\":null,\"internalCodeName\":\"ApplicationAppType\"}",
"{\"lookupKey\":3,\"clientKey\":1,\"codeName\":\"ApplicationClass\",\"codeValue\":\"Tier 1\",\"codeDesc\":\"Critical Application requiring immediate response in case of a disruption of Service\",\"updatedBy\":null,\"internalCodeName\":\"ApplicationClass\"}"
]
};
2、利用angularfromJson解析代码如下:
$scoperesult = [
angularfromJson(dataresultList[0]),
angularfromJson(dataresultList[1])
];
alert($scoperesult[0]codeName);
结果是:ApplicationClass
3、这样就获取到了json字符串中的codeName的值。
以上就是关于Ext中json解析如何获取属性名全部的内容,包括:Ext中json解析如何获取属性名、java怎么取json数据的值、如何将一个json数组类型的字符串转换为json数组,然后遍历数组取出json对象,最后在js中取出里面的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)