包含chashtablejson的詞條

本文目錄一覽:

C# Json字符串轉Hashtable類型空字符串””有是轉換正常有是轉換為了null

有一點你得知道,Hashtable 不會包含兩個相同的鍵,所以你看返回的table時,是不會看到兩個“”鍵的。

Java解析json數據

一、 JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。

Json建構於兩種結構:

1、“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:

{

“name”:”jackson”,

“age”:100

}

2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:

{

“students”:

[

{“name”:”jackson”,“age”:100},

{“name”:”michael”,”age”:51}

]

}

二、java解析JSON步驟

A、服務器端將數據轉換成json字符串

首先、服務器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:)

然後將數據轉為json字符串,核心函數是:

public static String createJsonString(String key, Object value)

{

JSONObject jsonObject = new JSONObject();

jsonObject.put(key, value);

return jsonObject.toString();

}

B、客戶端將json字符串轉換為相應的javaBean

1、客戶端獲取json字符串(因為android項目中已經集成了json的jar包所以這裡無需導入)

public class HttpUtil

{

public static String getJsonContent(String urlStr)

{

try

{// 獲取HttpURLConnection連接對象

URL url = new URL(urlStr);

HttpURLConnection httpConn = (HttpURLConnection) url

.openConnection();

// 設置連接屬性

httpConn.setConnectTimeout(3000);

httpConn.setDoInput(true);

httpConn.setRequestMethod(“GET”);

// 獲取相應碼

int respCode = httpConn.getResponseCode();

if (respCode == 200)

{

return ConvertStream2Json(httpConn.getInputStream());

}

}

catch (MalformedURLException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return “”;

}

private static String ConvertStream2Json(InputStream inputStream)

{

String jsonStr = “”;

// ByteArrayOutputStream相當於內存輸出流

ByteArrayOutputStream out = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

// 將輸入流轉移到內存輸出流中

try

{

while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)

{

out.write(buffer, 0, len);

}

// 將內存流轉換為字符串

jsonStr = new String(out.toByteArray());

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return jsonStr;

}

}

2、獲取javaBean

public static Person getPerson(String jsonStr)

{

Person person = new Person();

try

{// 將json字符串轉換為json對象

JSONObject jsonObj = new JSONObject(jsonStr);

// 得到指定json key對象的value對象

JSONObject personObj = jsonObj.getJSONObject(“person”);

// 獲取之對象的所有屬性

person.setId(personObj.getInt(“id”));

person.setName(personObj.getString(“name”));

person.setAddress(personObj.getString(“address”));

}

catch (JSONException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return person;

}

public static ListPerson getPersons(String jsonStr)

{

ListPerson list = new ArrayListPerson();

JSONObject jsonObj;

try

{// 將json字符串轉換為json對象

jsonObj = new JSONObject(jsonStr);

// 得到指定json key對象的value對象

JSONArray personList = jsonObj.getJSONArray(“persons”);

// 遍歷jsonArray

for (int i = 0; i personList.length(); i++)

{

// 獲取每一個json對象

JSONObject jsonItem = personList.getJSONObject(i);

// 獲取每一個json對象的值

Person person = new Person();

person.setId(jsonItem.getInt(“id”));

person.setName(jsonItem.getString(“name”));

person.setAddress(jsonItem.getString(“address”));

list.add(person);

}

}

catch (JSONException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return list;

}

json是什麼文件

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一個子集。

JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言。

JSON建構於兩種結構,一是“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。

二是值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。

擴展資料: 

JSON簡要歷史

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一個子集。

JSON是Douglas Crockford在2001年開始推廣使用的數據格式,在2005年-2006年正式成為主流的數據格式,雅虎和谷歌就在那時候開始廣泛地使用JSON格式。

參考資料來源:百度百科—json

JSON解析器json-c

JSON-C實現了一個引用計數對象模型,它允許您輕鬆地使用C語言來構建JSON對象,將它們輸出為JSON格式的字符串,並將JSON格式字符串解析回JSON對象的C語言表示形式。它的目標是符合 RFC 7159 標準。

使用automake的編譯過程如下:

使用cmake編譯的過程如下:

cmake可選的幾個編譯選項為:

要使用json-c,最簡單的方式是包含json.h頭文件即可,或者最好是下列更具體的頭文件之一:

詳細且全面的API介紹文檔:

JSON-C支持的JSON對象類型有7種:

下面系列函數用於創建一個JSON對象:

給JSON對象增加字段(不會增加引用計數):

刪除json對象的指定字段,被刪除的對象引用計數減去1,如果這個val沒有更多的所有者,這個key對應的val被free,否則這個val的引用保存在內存中:

增加一個元素到json數組的末尾,obj引用計數不會增加,增加字段的方式更加緊湊;如果需要獲取val的引用,需要用json_object_get()來傳遞該對象:

替換json數組中的值:

json數組的排序,這裡需要自己寫排序函數:

獲取json對象的長度,依據字段的數目:

獲取json對象的哈希表:

獲取對象的數組列表:

獲取json的類型:

獲取json數組對象的長度:

獲取json對象的bool值,int和double對象是0轉換為FALSE,否則返回TRUE;非0長度的字符串返回TRUE;其他對象非空的話,返回TRUE:

獲取json對象的長度,如果參數不是string類型的json,返回0:

按照索引獲取json數組的對象:

轉換json對象到c字符串格式:

獲取JSON中指定類型的數值:

將字符串轉換為json對象:

以下兩個函數配合使用,前者獲取該對象指針的所有權,引用計數加1,如果對象已經被釋放,返回NULL;後者引用計數減1,如果對象已經被釋放,返回1:

類型判斷:

json_util.h提供了有關文件讀寫操作的函數,這個文件的內容是json格式的:

c語言 解析json字符串

你好,你用json-c庫,編譯通過了嗎?我是在ubuntu里使用json-c庫,但是無法編譯通過,報錯 undefined reference to ‘json_tokener_parse’,類似的函數沒定義的錯誤,你是怎麼調用的json-c庫?請教一下,謝謝!

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

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

相關推薦

發表回復

登錄後才能評論