SON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。JSON格式取代了xml给网络传输带来了很大的便利,但是却没有了xml的一目了然,尤其是json数据很长的时候,我们会陷入繁琐复杂的数据节点查找中。
JSON可以使用专门的编译器打开。JSON有两种表示结构,对象和数组。对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔。
『贰』 请问一下JSON怎么存储和提取List表或数组
// json
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("name", "张三");
map.put("age", 22 + "");
list.add(map);
JSONObject object = new JSONObject();
try {
object.put("glass", "7年级");
object.put("stus", list);
} catch (JSONException e) {
e.printStackTrace();
}
StringBuffer sbBuffer = null;
try {
map = ((List<Map<String, String>>) object.get("stus")).get(0);
sbBuffer = new StringBuffer(map.get("name") + ":" + map.get("age"));
} catch (JSONException e) {
e.printStackTrace();
}
『叁』 js中for遍历出了多个json,如何把这些json存到数组
新new一个数组array;
在for循环中将每个json放入这个新new的数组array;
在for循环的外部获取这个新new的数组;
『肆』 怎么把把 json 转换成数组
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person);
『伍』 json数组怎么写
本文操作环境:Windows7系统,Dell G3电脑。
json数组的写法:
数组作为 JSON 对象
[ “Google”, “Runoob”, “Taobao” ]JSON 数组在中括号中书写。
JSON 中数组值必须是森孙合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined。
JSON 对象中的数组
对象属性的值可以是一个数组:
{
”name”:”网站”, “num”:3, “sites”:[ “Google”, “Runoob”, “Taobao” ]
}我们可以使用索引值来访问数组:
x = myObj.sites[0];循环数州蠢组
你可以使用 for-in 来访问数组:
for (i in myObj.sites)
{ x += myObj.sites[i] + “
“; }你也可以使用 for 循环:
for (i = 0; i 嵌套 JSON 对象中的数组
JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象:
myObj = {
“name”:”网站”,
“num”:3,
“sites”: [
{ “name”:”Google”, “info”:[ “Android”, “Google 搜索”, “Google 翻译” ] },
{ “name”:”Runoob”, “info”:[ “菜鸟教程”, “菜鸟工具”, “菜鸟微信” ] },
{ “name”:”Taobao”, “info”:[ “淘宝此迹链”, “网购” ] }
]
}我们可以使用 for-in 来循环访问每个数组:
for (i in myObj.sites) {
x += ““ + myObj.sites[i].name + ““;
for (j in myObj.sites[i].info) {
x += myObj.sites[i].info[j] + “
“;
}
}修改数组值
你可以使用索引值来修改数组值:
myObj.sites[1] = “Github”;删除数组元素
我们可以使用 delete 关键字来删除数组元素:
delete myObj.sites[1];
『陆』 怎样用js实现读取服务器中的json文件并将文件件中的数据保存在数组中
,参考例子如下:
<html>
<head>
<title>JS操作文本文件</title>
</head>
<body>
<script>
var arr = 1;
function Write2Text()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.CreateTextFile("a.txt", true);
f.write(arr);
f.Close();
}
</script>
<input type=button value="Write" onclick="Write2Text()">
<script>
function GetHeader(src) {
var ForReading=1;
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.OpenTextFile(src,ForReading);
return(f.ReadAll());
}
function ReadText(){
var arr=GetHeader("a.txt").split("\r\n");
for(var i=0;i<arr.length;i++){
alert("第"+(i+1)+"行数据为:"+arr[i]);
}
}
</script>
<input type=button value="Read" onclick="ReadText()">
</body>
</html>
『柒』 json数组存储了两个对象,要怎么遍历
for(variinjson.all)
console.log(json.all[i].menuid+":"+json.all[i].menuname);
for(variinjson.user)
console.log(json.user[i].menuid+":"+json.user[i].menuname);
或者
for(varkeyinjson){
for(variinjson[key])
console.log(json[key][i].menuid+":"+json[key][i].menuname;
}
里面的json就是你的json对象。如果是文本格式,就先用JSON.parse转化一下