catjson(catjson ilruntime init)

本文目錄一覽:

如何解析返回的json格式數據

json數據格式解析我自己分為兩種;

一種是普通的,一種是帶有數組形式的;

普通形式的:

服務器端返回的json數據格式如下:

複製代碼代碼如下:

{“userbean”:{“Uid”:”100196″,”Showname”:”\u75af\u72c2\u7684\u7334\u5b50″,”Avtar”:null,”State”:1}}

分析代碼如下:

複製代碼代碼如下:

// TODO 狀態處理 500 200

int res = 0;

res = httpClient.execute(httpPost).getStatusLine().getStatusCode();

if (res == 200) {

/*

* 當返回碼為200時,做處理

* 得到服務器端返回json數據,並做處理

* */

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();

BufferedReader bufferedReader2 = new BufferedReader(

new InputStreamReader(httpResponse.getEntity().getContent()));

String str2 = “”;

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2

.readLine()) {

builder.append(s);

}

Log.i(“cat”, “” + builder.toString());

JSONObject jsonObject = new JSONObject(builder.toString())

.getJSONObject(“userbean”);

String Uid;

String Showname;

String Avtar;

String State;

Uid = jsonObject.getString(“Uid”);

Showname = jsonObject.getString(“Showname”);

Avtar = jsonObject.getString(“Avtar”);

State = jsonObject.getString(“State”);

帶數組形式的:

服務器端返回的數據格式為:

複製代碼代碼如下:

{“calendar”:

{“calendarlist”:

[

{“calendar_id”:”1705″,”title”:”(\u4eb2\u5b50)ddssd”,”category_name”:”\u9ed8\u8ba4\u5206\u7c7b”,”showtime”:”1288927800″,”endshowtime”:”1288931400″,”allDay”:false},

{“calendar_id”:”1706″,”title”:”(\u65c5\u884c)”,”category_name”:”\u9ed8\u8ba4\u5206\u7c7b”,”showtime”:”1288933200″,”endshowtime”:”1288936800″,”allDay”:false}

]

}

}

分析代碼如下:

複製代碼代碼如下:

// TODO 狀態處理 500 200

int res = 0;

res = httpClient.execute(httpPost).getStatusLine().getStatusCode();

if (res == 200) {

/*

* 當返回碼為200時,做處理

* 得到服務器端返回json數據,並做處理

* */

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();

BufferedReader bufferedReader2 = new BufferedReader(

new InputStreamReader(httpResponse.getEntity().getContent()));

String str2 = “”;

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2

.readLine()) {

builder.append(s);

}

Log.i(“cat”, “” + builder.toString());

/**

* 這裡需要分析服務器回傳的json格式數據,

*/

JSONObject jsonObject = new JSONObject(builder.toString())

.getJSONObject(“calendar”);

JSONArray jsonArray = jsonObject.getJSONArray(“calendarlist”);

for(int i=0;ijsonArray.length();i++){

JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);

CalendarInfo calendarInfo = new CalendarInfo();

calendarInfo.setCalendar_id(jsonObject2.getString(“calendar_id”));

calendarInfo.setTitle(jsonObject2.getString(“title”));

calendarInfo.setCategory_name(jsonObject2.getString(“category_name”));

calendarInfo.setShowtime(jsonObject2.getString(“showtime”));

calendarInfo.setEndtime(jsonObject2.getString(“endshowtime”));

calendarInfo.setAllDay(jsonObject2.getBoolean(“allDay”));

calendarInfos.add(calendarInfo);

}

總結,普通形式的只需用JSONObject ,帶數組形式的需要使用JSONArray 將其變成一個list。

Android studio在logcat中打印日誌json顯示不全的問題解決方案

問題:android studio的logcat中一次打印的數據有4M(4*1024k)的顯示,如果json中的數據大於這個限制,就會顯示不全。

解決方案:

導出日誌查看,這裡推薦一種使用notepad++查看的方式:

如何關聯json格式的數據

思路:把你的json首先需要找到分割,比如你的字段之間的分隔符、json之間的分隔符

參考這個例子嘗試下:

CREATE TABLE login_struct (

ip STRING,

user structuid:bigint,name:string

)

PARTITIONED BY (dt STRING)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘,’

COLLECTION ITEMS TERMINATED BY ‘|’

MAP KEYS TERMINATED BY ‘:’

STORED AS TEXTFILE;

複製代碼

user是一個struct,分別包含用戶uid和用戶名。

輸出hive表對應的數據

printf “%s,%s|%s|\n” 192.168.1.1 3105007010 blue login_struct.txt

printf “%s,%s|%s|\n” 192.168.1.2 3105007012 ggjucheng login_struct.txt

login_struct.txt的內容:

# cat login_struct.txt

192.168.1.1,3105007010,wow:10|cf:1|qqgame:2

192.168.1.2,3105007012,wow:20|cf:21|qqgame:22

加載數據到hive表

LOAD DATA LOCAL INPATH ‘/home/hadoop/login_struct.txt’ OVERWRITE INTO TABLE login_struct PARTITION (dt=’20130101′);

查看數據

select ip,user from login_struct where dt=’20130101′;

192.168.1.1 {“uid”:3105007010,”name”:”blue”}

192.168.1.2 {“uid”:3105007012,”name”:”ggjucheng”}

使用struct

select ip,user.uid,user.name from login_map where dt=’20130101′;

你嘗試下這樣

select ip,user.uid,user.name from login_map where user.uid=’x’;

JSON必知必會

1、JSON基於JavaScript對象字面量

所謂字面量,是對數據值的具體表示。它的字面意思與其想要表達的意思是完全一致的。

2、名稱-值對

計算機世界裏,名稱-值對也被稱為鍵-值對、屬性-值對或字段-值對,它們都表示一個意思。

3、正確的JSON語法

示例:

4、JSON文件使用.json 拓展名

5、JSON媒體類型是application/json

1、對象數據類型

JSON中的對象數據類型非常簡單。追根溯源,JSON本身就是對象,也就是被花括號包裹的名稱-值對的列表。對象可以嵌套。

2、字符串類型

簡單的字符串類型,比如前面提到的”cat”我就不多說了 ,下面重點講一下稍微複雜一點的。在這之前,我覺得有必要說一下解析器是如何讀JSON

的。對於解析器來說,當一個值以雙引號(”)開始時,它希望接下來的字符串文本以另一個雙引號結尾。這意味着這段字符串本身包含

雙引號可能會出錯。我不知道你是否理解我的意思,我們看一個例子吧:

3、數字類型

4、布爾類型

5、null類型

6、數組類型

JSON中的數組類型呢也是一個比較重要的類型,上面用的不多的我就不細說,你記住就好。廢話不多說,先來看一個例子吧:

1、跨站請求偽造CSRF:

拓展一下:

頂層JSON數組指存在於JSON名稱-至對之外的位於文檔最頂層的JSON數組

2、跨站腳本攻擊XSS

3、安全漏洞:決策上的失誤

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/300886.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 14:18
下一篇 2024-12-29 14:18

相關推薦

  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • cloudbase-init全面剖析

    一、cloudbase-init功能 cloudbase-init是一個雲引導工具,用於初始化雲服務器上的Windows實例。當創建Windows實例時,cloudbase-ini…

    編程 2025-04-12
  • 探討init函數

    一、簡介 init函數是一種常見的編程語言中的內置函數,通常在程序生命周期的初始化階段被調用,用於初始化程序的一些全局變量、數據結構和資源等,在程序正式運行前為其進行一些必要的準備…

    編程 2025-02-05
  • Yarn init——打造自己的Node.js工程

    Node.js 是當前最熱門的開發技術之一,在開發Node.js工程時,我們需要使用庫(library)和包(package)。而對於包管理,npm 是最常用的工具。但是,有一些開…

    編程 2024-12-23
  • Kubeadm init詳解

    一、Kubeadm init是什麼 Kubeadm init是Kubernetes官方提供的一種快速初始化集群的工具,可以幫助用戶在短時間內搭建出一個可用的Kubernetes節點…

    編程 2024-12-12
  • init.py——Python中的重要文件

    在Python中,init.py文件是一個非常重要的文件。它代表了該目錄是Python包的一部分。Python包是一種由模塊、子包組成的層次結構。每個包中都必須有一個init.py…

    編程 2024-12-11
  • Vue-Init-Webpack 與 Vue-Create的全面比較

    一、基本介紹 Vue-Init-Webpack和Vue-Create都是Vue的官方腳手架工具,用於快速搭建Vue應用。Vue-Init-Webpack基於webpack和vue-…

    編程 2024-12-11
  • 深入解析 Linux init.d 開機啟動

    Linux init.d 是 Linux 系統最早提供的一個腳本管理方法,該方法基於 shell 腳本,通過在 /etc/init.d 目錄下創建相應服務腳本實現服務的啟動、停止和…

    編程 2024-12-08
  • Unity ILRuntime:一種快速高效的Unity C#運行時

    一、什麼是Unity ILRuntime? Unity ILRuntime是Unity引擎下的一個高效的跨平台C#運行時解決方案。它是由ILRuntime開源團隊基於Mono.VM…

    編程 2024-11-26
  • init-param——Web程序中的全局參數設置

    一、簡介 init-param是指在web.xml配置文件中,設置Web應用的全局參數。在整個Web應用程序中,無論是哪個Servlet調用這個全局參數,都會返回相同的參數值。因為…

    編程 2024-10-14

發表回復

登錄後才能評論