import java.util.ArrayList
import org.json.JSONArray
import org.json.JSONObject
import org.json.JSONStringer
import android.util.Log
public class JSON{
//========================================================================
/**
*
retrieveJSONArray(ArrayList<>jsonArray)
*
* Returns JSON formed Array from the ArrayList provided.
* jsonArray will be ArrayList of array.
* the elements provided in array will be arranged in consecutive keys
* ex: [{"key0","1st element of array"},{"key1","2nd element of array"}]
*
*/
//========================================================================
public static String retrieveJSONArray(ArrayList jsonArray){
try{
String[] jsonObject=new String[2]
JSONStringer stringer=new JSONStringer()
stringer.array()
int arrayLength=jsonArray.size()
for(int i=0i<arrayLengthi++){
jsonObject=jsonArray.get(i)
stringer.object()
for(int j=0j<jsonObject.lengthj++)
stringer.key("key"+j).value(jsonObject[j])
stringer.endObject()
}
stringer.endArray()
return stringer.toString()
}catch(Exception e){
e.printStackTrace()
}
return null
}
//========================================================================
/**
*
retrieveJSONArray(ArrayList<>jsonArray,String[] key)
*
* Returns JSON formed Array from the ArrayList provided.
* jsonArray will be ArrayList of array.
* the elements provided in array will be arranged in consecutive keys
* ex: [{"key[0]","1st element of array"},{"key[1]","2nd element of array"}]
*
*/
//========================================================================
public static String retrieveJSONArray(ArrayList jsonArray,String[] key){
try{
String[] jsonObject=new String[2]
JSONStringer stringer=new JSONStringer()
stringer.array()
int arrayLength=jsonArray.size()
for(int i=0i<arrayLengthi++){
jsonObject=jsonArray.get(i)
stringer.object()
for(int j=0j<jsonObject.lengthj++)
stringer.key(key[j]).value(jsonObject[j])
stringer.endObject()
}
stringer.endArray()
return stringer.toString()
}catch(Exception e){
e.printStackTrace()
}
return null
}
//========================================================================
/**
*
retrieveJSONString(ArrayList<>jsonArray)
*
* Returns JSON formed string from the ArrayList provided.
* jsonArray will be ArrayList of array.
* ex: {"key0":"1st element of array","key1":"2nd element of array"}
*
*/
//========================================================================
public static String retrieveJSONString(ArrayList jsonObject){
try{
String[] arr_jsonObject=new String[2]
JSONStringer stringer=new JSONStringer()
stringer.object()
for(int i=0i<jsonObject.size()i++){
arr_jsonObject=jsonObject.get(i)
stringer.key(arr_jsonObject[0]).value(arr_jsonObject[1])
}
stringer.endObject()
return stringer.toString()
}catch(Exception e){
e.printStackTrace()
}
return null
}
//========================================================================
/**
*
Converts jsonArray to an arrayList of String[]. Where each row contains values in json
* String array, in increasing order of key values provided, without there key counterparts.
*
* For ex: if JSON string is [{"key00":"value00","key01":"value01"},{"key10":"value10","key11":"value11"}],
* then the rows of an array will be as follows
*
First row : 1st element- value00, 2nd element - value01* Second row : 1st element- value10, 2nd element - value11
*
*
* */
//========================================================================
public static ArrayList convertJSONArraytoArrayList(String jsonArray,String[] key){
try{
JSONArray JsonArray=new JSONArray(jsonArray)
JSONObject JsonObject=new JSONObject()
int jsonArraySize=JsonArray.length()
String[] jsonObjectArray
ArrayList jsonArrayList=new ArrayList()
for(int i=0i<jsonArraySizei++){
JsonObject=JsonArray.getJSONObject(i)
jsonObjectArray=new String[key.length]
for(int j=0j<key.lengthj++)
jsonObjectArray[j]=JsonObject.getString(key[j])
jsonArrayList.add(jsonObjectArray)
}
return jsonArrayList
}catch(Exception e){
e.printStackTrace()
return null
}
}
//========================================================================
/**
*
Converts jsonString to an arrayList of String[].
*
* For ex: if JSON string is {"key00":"value00","key01":"value01"},
* then the rows of an array will be as follows
*
First row : 1st element- value00* Second row : 1st element- value10
*
*
* */
//========================================================================
public static ArrayList convertJSONStringtoArrayList(String jsonString,String[] key){
try{
JSONObject jsonObject=new JSONObject(jsonString)
ArrayList jsonArrayList=new ArrayList()
for(int i=0i<key.lengthi++)
jsonArrayList.add(new String[]{jsonObject.getString(key[i])})
return jsonArrayList
}catch(Exception e){
e.printStackTrace()
return null
}
}
}
x
1.JSON数据格式\x0d\x0aa)以最简单的形式,您可以使用以下JSON来表示名称/值对:\x0d\x0a{“姓”:“布雷特”}\x0d\x0aB)可以创建包含多个名称/值对的记录,例如:\x0d\x0a{“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”}\x0d\x0ac)可以创建一个值数组\x0d\x0a{“人”):\x0d\x0a{“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”,\x0d\x0a{“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”}\x0d\x0a] ]\x0d\x0ad)当然,可以使用相同的语法来表示多个值(每个值包含多个记录):\x0d\x0a{“程序员”):\x0d\x0a{“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”,\x0d\x0a{“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”}\x0d\x0a]\x0d\x0a“作者”:\x0d\x0a{姓〉:“艾萨克”、“姓氏”:“阿西莫夫”、“流派”:“科幻小说”,\x0d\x0a{“第一名字”:“TAD”、“姓氏”:“威廉姆斯”、“凯卜流派”:“幻想”}\x0d\x0a]\x0d\x0a“音乐家”:\x0d\x0a{“姓”:“埃里克”、“姓氏”:“克莱普顿”、“乐器”:“吉他”}\x0d\x0a]\x0d\x0a}\x0d\x0a请注意,在不同的主要条目(程序员、作者和音乐家)之间,记录中的实际名称/值对可能是不同的。JSON是完全动态的,允许在JSON结构的中间表示数据的方式。\x0d\x0a2。在JavaScript中使用JSON\x0d\x0aJSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。\x0d\x0a2.1将JSON数据分配给变量\x0d\x0a例如,您可以创建一个新的JavaScript变量,并将其直接分配给JSON格式的数据字符串。\x0d\x0aVaR人=\x0d\x0a{“程序员”):\x0d\x0a{“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布高孙告雷特@ NeWistalist.com”,\x0d\x0a{“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”}\x0d\x0a]\x0d\x0a“作者”:\x0d\x0a{姓〉:“艾萨克”、“姓氏”:“阿西莫夫”、“流派”:“科幻小说”,\x0d\x0a{“第一名字”:“TAD”、“姓氏”:“威廉姆斯”、“流派”:“幻想”}\x0d\x0a]\x0d\x0a“音乐家”:\x0d\x0a{“姓”:“埃里克”、“姓氏”:“克莱普顿”、“乐器”:“吉他”}\x0d\x0a]\x0d\x0a}\x0d\x0a2.2访问数据\x0d\x0a将数组放入JavaScript变量后,可以很容易地访问它。实际上,只使用点符号来表示数组元素。所以,如戚明果你想访问程序员列表的第一个条目,你只需要在JavaScript中使用下面的代码:\x0d\x0a人。程序员(0)。\x0d\x0a注意,数组的索引从零开始。\x0d\x0a2.3修改JSON数据\x0d\x0a正如数据被访问一样,数据也可以以同样的方式修改:\x0d\x0a人。音乐家[ 1 ]。姓氏=“Rachmaninov”;\x0d\x0a2.4转换后串\x0d\x0aA)在JavaScript,这种转换也非常简单。\x0d\x0aString NejjStangeTeX= Posi.TjsString();\x0d\x0aB)可以将任何JavaScript对象转换为JSON文本。而不是处理最初使用JSON字符串来分配值的变量。为了转换名为MyObjor的对象,我们只需要执行相同的命令形式:\x0d\x0aString MyObjutsPixs= MyObjut.TjsString();\x0d\x0a说明:转换后的字符串用作Ajax调用的字符串,以完成异步传输。\x0d\x0a总结:如果您想处理大量的JavaScript对象,那么JSON几乎肯定是一个不错的选择,因此您可以轻松地将数据转换成可以在请求中发送到服务器端程序的格式。\x0d\x0a三。服务器端JSON\x0d\x0a3.1向服务器发送JSON\x0d\x0aa)通过get发送具有名称/值对的JSON\x0d\x0a在JSON数据中,将有空格和各种字符。Web浏览器通常希望继续编译它们。为了确保这些字符不会在服务器上造成混淆(或者在向服务器发送数据的过程中),您需要在JavaScript的转义()函数中执行以下 *** 作:\x0d\x0aValueURL =“组织人”PHP?人=“+逃逸(人)tojSouthSnk());\x0d\x0aRequest.open(“获取”,URL,TRUE);\x0d\x0a请求.OnRead状态更改= UpDebug网页;\x0d\x0aRequest.send(NULL);\x0d\x0aB)使用POST请求发送JSON数据\x0d\x0a当您决定使用POST请求将JSON数据发送到服务器时,您不需要对代码进行很多更改。\x0d\x0aValueURL =“组织人”PHP?时间戳=“+新日期())GetTime();\x0d\x0aRequest.open(“POST”,URL,TRUE);\x0d\x0a请求.OnRead状态更改= UpDebug网页;\x0d\x0aRequest.setRequestHeader(“内容类型”,“应用程序/ X-WWW格式- URLNECODE”);\x0d\x0aRequest.send(Posi.TjsSouthScript)\x0d\x0a注意:赋值的格式必须是var MSG=EVE(+(Req.ReffStEXT++))。\x0d\x0a3.2解释服务器上的JSON\x0d\x0aa)处理JSON的两个步骤。\x0d\x0a对于用于编写服务器端程序的语言,可以找到相应的JSON解析器/工具箱/助手API。\x0d\x0a使用JSON解析器/工具箱/帮助器API从客户端获取请求数据,并将数据转换成脚本可以理解的内容。\x0d\x0ab)寻找JSON解析器\x0d\x0a找到JSON解析器或工具箱的最佳资源是JSON站点。如果使用JavaServlet,JSON.org上的Or.JSON包是一个不错的选择。在这种情况下,您可以从JSON网站下载JSON.ZIP,并添加到项目生成目录中包含的源文件。复合后代码如下:AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]
//申明返回的结果是json类型
manager.responseSerializer = [AFJSONResponseSerializer serializer]
//申明请求携闷的数据是json类型
manager.requestSerializer=[AFJSONRequestSerializer serializer]
//如果报接受类型不一致请替换一致text/html或别的
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"辩启弯]
//传入的参数
NSDictionary *parameters = @{@"1":@"XXXX",@"2":@"XXXX",@"3":@"XXXXX"}
//你的接口地址旁笑
NSString *url=@"http://"
//发送请求
[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject)
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)