json的官方网络媒体类型,服务器返回的json基本是

作者: 前端  发布:2019-08-28

JOSNObject与JSONArray的关系

这里简单介绍下JOSNObject与JSONArray的关系。

 

JOSNObject:json对象      用{}表示

 

JSONArray:json数组       用 [ ] 表示

 

服务器返回的json基本是这两种形式的搭配使用,他们之间可以互相嵌套使用,使用起来比较简单,不多说,上图:

 

private void text() throws Exception{

    //对象
    JSONObject jsonObject1=new JSONObject();
    jsonObject1.put("String","字符串");
    jsonObject1.put("key",110);
    jsonObject1.put("hello",false);
    //对象
    JSONObject jsonObject2=new JSONObject();
    jsonObject2.put("ok",35.66);
    jsonObject2.put("hi",new String());

    //数组
    JSONArray array = new JSONArray();
    array.put(jsonObject1);
    array.put(jsonObject2);
    //对象
    JSONObject jsonObject3=new JSONObject();
    jsonObject3.put("obj",array);

    Log.e("TAG","jsonObject3=" jsonObject3.toString());
}

 

以下为输出结果:

 

jsonObject3={"obj":[{"hello":false,"key":110,"String":"字符串"},{"ok":35.66,"hi":""}]}

 

这里简单介绍下JOSNObject与JSONArray的关系。 JOSNObject:json对象 用{}表示 JSONArray:json数组 用 [ ] 表示 服务器返回的...

json的官方网络媒体类型:application/json。
扩展名为:.json。

json,json在线解析

json的官方网络媒体类型:application/json。
扩展名为:.json。

是一种数据交换格式。

Json 语法:
数据使用键/值对表示
使用大括号保存对象,每个名称后面跟着一个 ':' 冒号,键值对之间用 ',' 逗号分隔。
使用方括号保存数组,数组使用 ',' 分割。

JSON 与 XML文件对比
冗余度:
XML 比 JSON冗余,因此编写 JSON更快。
数组用法:
XML不包含数组,而 JSON 包含数组

由前台 JSON 字符串到后台的 Java数据类型,过程其实是根据 JSON 和 Java的类型映射码表进行的解码
且在Java中,JSONObject 对应的就是 java.util.Map,JSONArray 对应的是 java.util.List,可以使用 Map 或 List的标准操作访问他们。

JS 中将 JSON 字符串转换为 JSON 对象:
(1)var jsonObj = eval('(' jsonStr ')')
(2)var jsonObj = JSON.parse(jsonStr);

JS 中将 JSON 对象转换为 JSON 字符串:
(1)var jsonStr = jsonObj.toJSONString();
(2)var jsonStr = JSON.stringify(jsonObj);

JSON 与 Ajax
Ajax dataType:预期服务器返回的数据类型,指定为 "json",则将返回的Json字符串转换为Json对象或Json数组。

Java 解码 Json:
导包:net.sf.json.JSONArray 和 net.sf.json.JSONObject
解码:
将请求的 Json 字符串转化为 JSON 对象:
JSONObject jsonObj = JSONObject.fromObject(str);

将请求的 Json 字符串转化为 JSON 数组对象:
JSONArray jsonArr = JSONArray.fromObject(str);
if(jsonArr.size()>0){
for(int i=0;i<jsonArr.size();i ){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
JSONObject jsonObj = jsonArr.getJSONObject(i);
}
}

 

疑问:

在不指定 dataType 的情况下发送ajax请求,
若在后台指定响应类型为 json,那我响应成功的回调函数接收到的值是 json 对象还是一个字符串?

在指定 dataType 的情况下发送ajax请求,
若在后台没有指定响应类型,响应成功的回调函数接收到的值是 json 对象还是一个字符串?

需不需要同时指定?

json的官方网络媒体类型:application/json。 扩展名为:.json。 是一种数据交换格式。 Json 语法: 数据使用键/值对表示 使用...

使用json-lib解析json数据

1、首先要理解几个概念

json对象,json数组,json字符串

json对象可以用JsonObject表示

json数组可以用JsonArray表示

json字符串就是就是一个String类型的字符串

然后在看下面的代码简单多了

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Test {
public static void main(String[] args) {
// List集合转换json数组(与数组一致)
List list = new ArrayList();
list.add("a");
list.add("b");
JSONArray jsonArray = JSONArray.fromObject(list);
System.err.println(jsonArray.toString());
// map集合转换json对象
Map map = new HashMap();
map.put("1", "1");
map.put("2", "2");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject.toString());
//将map集合转换为json数组(javabean与map类型一致)
JSONArray jsonArray2 = JSONArray.fromObject(map);
System.out.println(jsonArray2.toString());
// 一般数据(json字符串)转换为json
JSONArray jsonArray3 = JSONArray.fromObject("['1','2','4']");
System.out.println(jsonArray3);

}
}

更复杂的转换都是基于上面基础的转化。

最近在项目中用到一个将json字符串转换为自定义bean的数组对象

先将字符串转换为json数组,再利用JsonArray.toString方法将

指定的json数组转换为相应的自定义的bean对象

String users = request.getParameter("users");

JSONArray jsonArray = JSONArray.fromObject(users);

User[]users2 = (User[]) JSONArray.toArray(jsonArray, User.class);/

 

 

 

1、首先要理解几个概念 json对象,json数组,json字符串 json对象可以用JsonObject表示 json数组可以用JsonArray表示 json字符...

是一种数据交换格式。

Json 语法:
数据使用键/值对表示
使用大括号保存对象,每个名称后面跟着一个 ':' 冒号,键值对之间用 ',' 逗号分隔。
使用方括号保存数组,数组使用 ',' 分割。

JSON 与 XML文件对比
冗余度:
XML 比 JSON冗余,因此编写 JSON更快。
数组用法:
XML不包含数组,而 JSON 包含数组

由前台 JSON 字符串到后台的 Java数据类型,过程其实是根据 JSON 和 Java的类型映射码表进行的解码
且在Java中,JSONObject 对应的就是 java.util.Map,JSONArray 对应的是 java.util.List,可以使用 Map 或 List的标准操作访问他们。

JS 中将 JSON 字符串转换为 JSON 对象:
(1)var jsonObj = eval('(' jsonStr ')')
(2)var jsonObj = JSON.parse(jsonStr);

JS 中将 JSON 对象转换为 JSON 字符串:
(1)var jsonStr = jsonObj.toJSONString();
(2)var jsonStr = JSON.stringify(jsonObj);

JSON 与 Ajax
Ajax dataType:预期服务器返回的数据类型,指定为 "json",则将返回的Json字符串转换为Json对象或Json数组。

Java 解码 Json:
导包:net.sf.json.JSONArray 和 net.sf.json.JSONObject
解码:
将请求的 Json 字符串转化为 JSON 对象:
JSONObject jsonObj = JSONObject.fromObject(str);

将请求的 Json 字符串转化为 JSON 数组对象:
JSONArray jsonArr = JSONArray.fromObject(str);
if(jsonArr.size()>0){
for(int i=0;i<jsonArr.size();i ){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
JSONObject jsonObj = jsonArr.getJSONObject(i);
}
}

 

疑问:

在不指定 dataType 的情况下发送ajax请求,
若在后台指定响应类型为 json,那我响应成功的回调函数接收到的值是 json 对象还是一个字符串?

在指定 dataType 的情况下发送ajax请求,
若在后台没有指定响应类型,响应成功的回调函数接收到的值是 json 对象还是一个字符串?

需不需要同时指定?

本文由9159.com发布于前端,转载请注明出处:json的官方网络媒体类型,服务器返回的json基本是

关键词: 9159.com