1. 程式人生 > >JSON傳遞資料

JSON傳遞資料

1.JSON字串

json指的是javascript物件表示方法,全稱為Javascript Object Notation,是獨立於語言的輕量級文字資料交換格式,傳遞速率較快於xml,是現階段作為資料傳遞的主要格式。

先給出一個json字串的示例:

[
    {
       "age": 20,
       "gender": "male",
       "city": "nanjing",
       "score": [0,-1,0,-1,0,0]
    },

    { 
       "age": 52,
       "gender": "male",
       "city
": "nanjing", "score": [-1,0,1,1,1,0] }, { "age": 39, "gender": "male", "city": "nanjing", "score": [0,0,0,1,-1,1] }, { "age": 22, "gender": "male", "city": "nanjing", "score": [1,0,1,-1,0,0] } ]

上面的json字串不難理解,這也是json串的優點所在(xml也同樣具有這樣的特性),這段json串包含了4個物件,每個物件都有自己的屬性即年齡(age)、性別(gender)、城市(city)以及評分(sorce)。每個物件用大括號{}所囊括,屬性名稱由雙引號包圍,屬性值與屬性名稱用冒號連結,不同屬性之間用逗號相隔,不同物件之間也用逗號相隔。

Json的語法是Javascript的子語法,也就是說這一套體系在javascript中同樣適用。Json主要的作用是用於資料的傳遞,因此涉及到了資料收發的問題。

2.Json串的接收

我們後臺程式以java為例。在java平臺中,接收Json串的實質就是將資料儲存為不同的物件,如上文所提到的這個Json串,我們可以建立一個JavaBean用於接收上述Json串,因此我們構造了一個User類,其中包含了age,gender,city以及score等私有屬性,User類程式碼如下。

public class User{
    private int age;
    private
String gender; private String city; private int[] score; //Construct //Getter and Setter }

然後將前文提及的Json串寫入一個.json檔案並儲存。利用java進行檔案的讀寫。我們可以建立一個java的檔案讀取工具類FileUtil來統一存放讀取檔案方法,FileUtil類如下:

public class FileUtil {

    public String readFile(String filename){
        String str="";

        BufferedReader reader=null;

        try {
            FileInputStream fileInputStream=new FileInputStream(filename);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            reader=new BufferedReader(inputStreamReader);

            String tempStr=null;
            while((tempStr=reader.readLine())!=null){
                str+=tempStr;
            }
            reader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return str;
    }
}

該工具類中暫時只寫了一種方法即readFile(String filename),filename是將要讀取檔案的絕對路徑,函式返回一個由檔案內容構成的字串。這個字串也就是我們需要的json串,通過對這個字串的解析,我們便可以得到相應的實體類,這裡我們用到了json-lib.jar包,具體程式碼如下

public class JsonTest {

    public static void main(String[] args) {
        FileUtil fileUtil=new FileUtil();
        JsonUtil jsonUtil=new JsonUtil();
        List<User> userList=new ArrayList<User>();
        String filename="D:/workspace/MDSTest/json/Users.json";
        String jsonContext=fileUtil.readFile(filename);

        JSONArray jsonArray=JSONArray.fromObject(jsonContext);
        Collection<?> userCollection=JSONArray.toCollection(jsonArray);

        if(userCollection!=null&&!userCollection.isEmpty()){
            Iterator<?> it=userCollection.iterator();
            while(it.hasNext()){
                JSONObject jsonObj=JSONObject.fromObject(it.next());
                User user=(User)JSONObject.toBean(jsonObj, User.class);
                userList.add(user);
            }
        }

        for(User user:userList){
            System.out.println("age:"+user.getAge());
            System.out.println("gender:"+user.getGender());
            System.out.println("city:"+user.getCity());
            System.out.println("score:"+user.getScore());
        }

    }

}

上述操作中我們把json中的資訊分別儲存為4個獨立的user類,並將這4個user儲存到了List中。這樣便完成了json到java物件的轉化,也就是json資料的接受。

3.java類轉化為json串

相關推薦

django form表單驗證,使用Ajax提交併返回提示資訊(JSON傳遞資料

直接上程式碼: HTML,由Form外掛自動生成input標籤 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax提交

JavaScrip ajaxt和python flask通過json傳遞資料的方法

JavaScript呼叫ajax傳送一個json $('#cc').click(function () { mdffilepath = { 'name1': 'aaaa1','name2': 'aaaa2','name3': 'aaaa

flask 如何使用介面以及通過json傳遞資料

之前不知道介面是什麼,最近通過一段時間的學習。以下為介面的入門理解。 1:首先介面是什麼: 簡單的來說,介面以及API可以理解為flask框架下的url路由。外部網站通過這個url去訪問這個介面,然後介面再進行操作。 2.以下為使用介面的簡單案例 # -*- codi

JSON傳遞資料

1.JSON字串 json指的是javascript物件表示方法,全稱為Javascript Object Notation,是獨立於語言的輕量級文字資料交換格式,傳遞速率較快於xml,是現階段作為資料傳遞的主要格式。 先給出一個json字串的示例:

Java通過Json傳遞資料給JavaScript

<%@ page contentType = "text/html;charset=UTF-8" language = "java" %> <%@ page import="net.

與其他系統介面對接(java),json格式資料傳遞···OkHttpClient方式

上一種方式HttpURLConnection方式出現了點問題,就是在idea中啟動服務一切正常。當時用tomcat部署專案時候,對方介面接收引數出現中文亂碼問題。用了很多方式都沒有解決,不知有沒有大佬可以解決 引入依賴 <dependency>

與其他系統介面對接(java),json格式資料傳遞···HttpURLConnection方式

這個操作是與****系統進行資料介面的對接,本系統向****系統傳遞幾個引數,****系統接收並返回值。 目錄 post請求方式 @Service層 工具類ResultUtil pom需要新增的依賴 get請求方式 另一種 OkHttpClient 方式 post

JSON前端後端傳遞資料

網路層是http/tcp協議,其實是請求-響應,再說白了即使字串,不論後臺傳來的是什麼型別的資料,也不論前臺傳回的什麼型別的資料,網路層統統當作字串處理。最好能有一種通用的規則來編輯,轉換字串,這個標準或者協議就是JSON,JSON就是用來交換資料的,是一種string,一種獨立於平臺的資料格式。前

springmvc傳遞json map資料

@RequestMapping("/abc")     @ResponseBody     public Map<String,Object> test1(@RequestParam("page") Integer page,@RequestParam("row

sprig之使用ajax來實現向後臺實現json型別資料傳遞

首先要說的是一定要引對jar包,不是單獨json型別的包,而是json包和spring的依賴jar包都要引入。這裡給一個maven地址,可以實現對所有的jar包都進行引入操作。(本人就是因為jar包沒引對而一直出現415錯誤,比較坑) <!--進行json依賴的jar

JAVA中使用JSON進行資料傳遞

最近在做一個基於JAVA Servlet的WEB應用以及對應的Anroid應用客戶端的開發工作。 其中,在介面的訪問和資料的傳輸方面使用的比較多的是使用JSON物件來操作格式化資料:在伺服器端採用JSON字串來傳遞資料並在WEB前端或者Android客戶端使用JSON來

JSON傳遞bool型別資料的處理方式

ajax中使用json傳遞資料時,其它資料型別都不是問題,但是如果伺服器端生成的JSON中有bool型別的資料時,到客戶端解析時出現了小小的問題,總結如下: 伺服器返回的JSON為: {"TypeID":[1037],"Title":"河北軟體職業技術學院","Intr

Android 下使用 JSON 與伺服器端 Servlet 傳遞資料

        在Android下,SDK已經封裝好了與JSON相關的操作,伺服器端也只要匯入相關JAR包即可,這裡先放上我的小demo原始碼,android端和servlet的demo分別在兩個資料

SpringMvc+ajax 實現json格式資料傳遞

傳JSON物件 前端 function test () { var param = {username : "yitop"}; $.ajax({ timeout : 20000, type : "

格式化Json傳遞的日期

clas 格式化json cnblogs subst pan var log for fun 自定義日期類型轉化函數ChangeDateFormat,將//Date(1294499956278+0800)//形式的函數轉化為2014-5-2形式 1 function

javascript與php使用json傳遞數據

javascript與php使用jsonjavascript: <script> function loadDoc(file,async=true){ if(window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Saf

頁面訪問伺服器返回json格式資料太大,導致資料不全被截斷,無法展示

問題:頁面展示呼叫查詢方法查詢全部資料的時候一直顯示loading。。。,開啟偵錯程式顯示 Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR,而少部分查詢則正常顯示。 因為資料中有圖片轉成的二進位制陣列,資料比較長,由此懷疑

Struts2返回json格式資料踩坑記錄

事件起因 昨天提測修改凍結/解凍銀行卡樣式的功能,微姐測試過程中發現呼叫ajax請求耗時過長,今天來排查,發現瀏覽器請求/finance/ajax/freeze/ajaxGetShopLists時,對應的後端方法getShopList()莫名其妙地執行了兩遍,並且返回給瀏覽器的Json字串如下:

Vue使用props傳遞資料

1. Vue使用props傳遞資料 元件不僅僅是用來進行內容的複用,更重要的是元件之間的要進行通訊。通常父元件的模板中包含子元件,父元件要正向的向子元件傳遞資料或引數,子元件接受到後根據引數額不同來渲染不同的內容或執行操作。這個正向傳遞的過程就是通過props來實現的。 在元件中,

vue高階屬性 provide/inject,父元件向子元件或父元件的子元件的子元件...傳遞資料

官網說明:provide 和 inject 主要為高階外掛/元件庫提供用例。並不推薦直接用於應用程式程式碼中 以允許一個祖先元件向其所有子孫後代注入一個依賴,不論元件層次有多深,並在起上下游關係成立的時間裡始終生效。 provide 選項應該是一個物件