java后台解析json字符串

java后台解析json字符串,第1张

JSONArray 是json数据格式,它下边包含了jsonObject格式,所以你应该先取jsonObject,如:

for(int z = 0z <lengz++){

System.out.println("zzzz"+z)

JSONObject json = jsona.getJSONObject(z)

String name = json.get("name").toString

}

你的jsonarray格式要是正确的话就应该可以拿到name值。

页面上有一个数组,里面存放了多个json,需要将该数组作为参数传给Java后台。

var data= [{name:"jon",age:"12"},{name:"jic",age:"18"},{name:"petter",age:"14"}]

$.ajax({

url:'./service/iposremoteapprove/caseToUser.do',

data:{

ds:JSON.stringify(data) /* 特别需要注意这里,需要现将json数组通过JSON.stringify()处理一下之后,才能作为我们需要的参数传过去

},

type:'post',

dataType:"json",

success:function(json){

$.messager.alert("提示","成功","info")

}

})

java接收参数

String ds = request.getParameter("ds")

JSONArray json=JSONArray.fromObject(ds)

JSONObject jsonOne

Map<String,String>map=null

for(int i=0i<json.size()i++){

updataMap = new HashMap<String,String>()

jsonOne = json.getJSONObject(i)

map.put("name", (String) jsonOne.get("name"))

map.put("age", (String) jsonOne.get("age"))

}

此时map中就保存了页面传过来的数组中所有json中的键值对了

一、JSON(JavaScriptObjectNotation)一种简单的数据格式,比xml更轻巧。Json建构于两种结构:1、“名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。如:{“name”:”jackson”,“age”:100}2、值的有序列表(Anorderedlistofvalues)。在大部分语言中,它被理解为数组(array)如:{“students”:[{“name”:”jackson”,“age”:100},{“name”:”michael”,”age”:51}]}二、java解析JSON步骤A、服务器端将数据转换成json字符串首先、服务器端项目要导入json的jar包和json所依赖的jar包至builtPath路径下(这些可以到JSON-lib官网下载:http://json-lib.sourceforge.net/)然后将数据转为json字符串,核心函数是:publicstaticStringcreateJsonString(Stringkey,Objectvalue){JSONObjectjsonObject=newJSONObject()jsonObject.put(key,value)returnjsonObject.toString()}B、客户端将json字符串转换为相应的javaBean1、客户端获取json字符串(因为android项目中已经集成了json的jar包所以这里无需导入)publicclassHttpUtil{publicstaticStringgetJsonContent(StringurlStr){try{//获取HttpURLConnection连接对象URLurl=newURL(urlStr)HttpURLConnectionhttpConn=(HttpURLConnection)url.openConnection()//设置连接属性httpConn.setConnectTimeout(3000)httpConn.setDoInput(true)httpConn.setRequestMethod("GET")//获取相应码intrespCode=httpConn.getResponseCode()if(respCode==200){returnConvertStream2Json(httpConn.getInputStream())}}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}return""}privatestaticStringConvertStream2Json(InputStreaminputStream){StringjsonStr=""//ByteArrayOutputStream相当于内存输出流ByteArrayOutputStreamout=newByteArrayOutputStream()byte[]buffer=newbyte[1024]intlen=0//将输入流转移到内存输出流中try{while((len=inputStream.read(buffer,0,buffer.length))!=-1){out.write(buffer,0,len)}//将内存流转换为字符串jsonStr=newString(out.toByteArray())}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}returnjsonStr}}2、获取javaBeanpublicstaticPersongetPerson(StringjsonStr){Personperson=newPerson()try{//将json字符串转换为json对象JSONObjectjsonObj=newJSONObject(jsonStr)//得到指定jsonkey对象的value对象JSONObjectpersonObj=jsonObj.getJSONObject("person")//获取之对象的所有属性person.setId(personObj.getInt("id"))person.setName(personObj.getString("name"))person.setAddress(personObj.getString("address"))}catch(JSONExceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}returnperson}publicstaticListgetPersons(StringjsonStr){Listlist=newArrayList()JSONObjectjsonObjtry{//将json字符串转换为json对象jsonObj=newJSONObject(jsonStr)//得到指定jsonkey对象的value对象JSONArraypersonList=jsonObj.getJSONArray("persons")//遍历jsonArrayfor(inti=0i


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6671708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存