请教大神,Java怎么解析JSON截取字符串之间的内容.具体见内容

所有回答(2)
我很奇怪,为什么总是有人伸手求代码?
园豆:2483
&&&您需要以后才能回答,未注册用户请先。中国领先的IT技术网站
51CTO旗下网站
Android开发:Json字符串到Json对象万能解析器
本文介绍了如何用Java实现Json字符串到Json对象万能解析器,即通过CommonJSONParser可以把json字符串转换为包含Map、List、String、Integer等标准Java对象的集合。
作者:佚名来源:cnblogs| 06:39
json字符串到json对象万能转换器(java实现),就一百来行代码,非常轻量小巧。对于一般应用场景资源消耗非常低,速度也足够快,尤其适用于Android应用开发。
通过CommonJSONParser可以把json字符串转换为包含Map、List、String、Integer等标准Java对象的集合,具体使用方法:
CommonJSONParser commonJSONParser = new
CommonJSONParser();
&&Map&String, Object& result =
commonJSONParser.parse(jsonDataStr);
CommonJSONParser源代码如下(主要使用&递归&思想):
1 import&java.util.ArrayL&&2&import&java.util.HashM&&3&import&java.util.I&&4&import&java.util.L&&5&import&java.util.M&&6&&&7&import&org.json.JSONA&&8&import&org.json.JSONE&&9&import&org.json.JSONO&10&&11&public&class&CommonJSONParser&{&12&&13&&&&&public&Map&String,&Object&&parse(String&jsonStr)&{&14&&15&&&&&&&&&Map&String,&Object&&result&=&null;&16&&17&&&&&&&&&if&(null&!=&jsonStr)&{&18&&&&&&&&&&&&&try&{&19&&20&&&&&&&&&&&&&&&&&JSONObject&jsonObject&=&new&JSONObject(jsonStr);&21&&&&&&&&&&&&&&&&&result&=&parseJSONObject(jsonObject);&22&&23&&&&&&&&&&&&&}&catch&(JSONException&e)&{&24&&&&&&&&&&&&&&&&&&25&&&&&&&&&&&&&&&&&e.printStackTrace();&26&&&&&&&&&&&&&}&27&&&&&&&&&}&&28&&29&&&&&&&&&return&&30&&&&&}&31&&32&&&&&private&Object&parseValue(Object&inputObject)&throws&JSONException&{&33&&&&&&&&&Object&outputObject&=&null;&34&&35&&&&&&&&&if&(null&!=&inputObject)&{&36&&37&&&&&&&&&&&&&if&(inputObject&instanceof&JSONArray)&{&38&&&&&&&&&&&&&&&&&outputObject&=&parseJSONArray((JSONArray)&inputObject);&39&&&&&&&&&&&&&}&else&if&(inputObject&instanceof&JSONObject)&{&40&&&&&&&&&&&&&&&&&outputObject&=&parseJSONObject((JSONObject)&inputObject);&41&&&&&&&&&&&&&}&else&if&(inputObject&instanceof&String&||&inputObject&instanceof&Boolean&||&inputObject&instanceof&Integer)&{&42&&&&&&&&&&&&&&&&&outputObject&=&inputO&43&&&&&&&&&&&&&}&44&&45&&&&&&&&&}&46&&47&&&&&&&&&return&outputO&48&&&&&}&49&&50&&&&&private&List&Object&&parseJSONArray(JSONArray&jsonArray)&throws&JSONException&{&51&&52&&&&&&&&&List&Object&&valueList&=&null;&53&&54&&&&&&&&&if&(null&!=&jsonArray)&{&55&&&&&&&&&&&&&valueList&=&new&ArrayList&Object&();&56&&57&&&&&&&&&&&&&for&(int&i&=&0;&i&&&jsonArray.length();&i++)&{&58&&&&&&&&&&&&&&&&&Object&itemObject&=&jsonArray.get(i);&59&&&&&&&&&&&&&&&&&if&(null&!=&itemObject)&{&60&&&&&&&&&&&&&&&&&&&&&valueList.add(parseValue(itemObject));&61&&&&&&&&&&&&&&&&&}&62&&&&&&&&&&&&&}&&63&&&&&&&&&}&&64&&65&&&&&&&&&return&valueL&66&&&&&}&67&&68&&&&&private&Map&String,&Object&&parseJSONObject(JSONObject&jsonObject)&throws&JSONException&{&69&&70&&&&&&&&&Map&String,&Object&&valueObject&=&null;&71&&&&&&&&&if&(null&!=&jsonObject)&{&72&&&&&&&&&&&&&valueObject&=&new&HashMap&String,&Object&();&73&&74&&&&&&&&&&&&&Iterator&String&&keyIter&=&jsonObject.keys();&75&&&&&&&&&&&&&while&(keyIter.hasNext())&{&76&&&&&&&&&&&&&&&&&String&keyStr&=&keyIter.next();&77&&&&&&&&&&&&&&&&&Object&itemObject&=&jsonObject.opt(keyStr);&78&&&&&&&&&&&&&&&&&if&(null&!=&itemObject)&{&79&&&&&&&&&&&&&&&&&&&&&valueObject.put(keyStr,&parseValue(itemObject));&80&&&&&&&&&&&&&&&&&}&&81&&82&&&&&&&&&&&&&}&&83&&&&&&&&&}&&84&&85&&&&&&&&&return&valueO&86&&&&&}&87&}&
【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
聚焦关注热点关注热点
24H热文一周话题本月最赞
讲师:427284人学习过
讲师:159491人学习过
讲师:82898人学习过
精选博文论坛热帖下载排行
本书是根据全国计算机技术与软件专业资格(水平)考试“网络工程师级考试大纲”编写的考试辅导用书。全书主体按考试大纲的章节编排,分上、...
订阅51CTO邮刊Java解析JSON文件的方法
一、首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:
二、提供一份待解析的json文件,apkinfo.json如下:
"name":"帐号",
"package_name":"com.android.account",
"check_version":"1.2"
"name":"系统升级",
"package_name":"com.android.osupdate",
"check_version":"1.0"
三、Java代码由两个类组成,一个是读取文件内容的Util类,还有一个是主程序Test类。
(1)Util.java:
import java.io.BufferedR
import java.io.FileInputS
import java.io.IOE
import java.io.InputStreamR
public class Util {
public String ReadFile(String Path){
BufferedReader reader =
String laststr = "";
FileInputStream fileInputStream = new
FileInputStream(Path);
InputStreamReader inputStreamReader = new
InputStreamReader(fileInputStream, "UTF-8");
reader = new BufferedReader(inputStreamReader);
String tempString =
while((tempString = reader.readLine()) != null){
laststr += tempS
reader.close();
}catch(IOException e){
e.printStackTrace();
if(reader != null){
reader.close();
} catch (IOException e) {
e.printStackTrace();
(2)Test.java:
import java.util.ArrayL
import java.util.I
import java.util.L
import net.sf.json.JSONA
import net.sf.json.JSONO
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String JsonContext = new
Util().ReadFile("D:\\test\\apkinfo.json");
JSONArray jsonArray = JSONArray.fromObject(JsonContext);
int size = jsonArray.size();
System.out.println("Size: " + size);
for(int &i = 0; i & i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println("[" + i + "]name=" +
jsonObject.get("name"));
System.out.println("[" + i + "]package_name=" +
jsonObject.get("package_name"));
System.out.println("[" + i + "]check_version=" +
jsonObject.get("check_version"));
四、执行后的结果如下:
[0]name=帐号
[0]package_name=com.android.account
[0]check_version=1.2
[1]name=系统升级
[1]package_name=com.android.osupdate
[1]check_version=1.0
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。请教java解析json字符串不使用第三方jar包自己怎么写? - ITeye问答
如题,网上到处都是用json-lib等第三方jar包,如果自己写的话该怎么写,要求很简单,只要能读取json字符串就可以了
jackson啊,干嘛要自己写。
用 Gson&& 还有源代码
读取的源代码 拿来用用不就好了?
需要知道你自己定义的json格式,根据字符串的格式,然后对字符串进行分割
{"state":"1","value":"2","datalist":[{"id":"86","name":
& "图片中的\u003cfont color=FFe红色\u003c/font\u003e数字是多少?"
& ,"desc":"肯德基","content":"30","icon":
& "/Upload/Images/Gift/57487_s.png"
& ,"date":" 17:26:18"},{"id":"87","name":
& "图片中的\u003cfont color=3e绿色\u003c/font\u003e数字是多少?"
& ,"desc":"麦当劳","content":"30","icon":
& "/Upload/Images/Gift/13086_s.jpg"
,"date":" 17:26:12"}]}
这个json字符串包含数组的“datalist”是数组
解析上边的json格式对应如下
JSONTokener jsonParser = new JSONTokener(contenttring);
JSONObject jsonObject = (JSONObject) jsonParser.nextValue();
String state = jsonObject.getString("state");
String value = jsonObject.getString("value");
hashMap.put("state", state);
hashMap.put("value", value);
String datalist = jsonObject.getString("datalist");
Log.d(TAG, "datalist---&" + datalist);
JSONArray array = new JSONArray(datalist);
list = new ArrayList&App&();
for (int i = 0; i & array.length(); i++) {
JSONObject item = array.getJSONObject(i);
String id = item.getString("id");
String name = item.getString("name");
String desc = item.getString("desc");
String content = item.getString("content");
String icon = item.getString("icon");
String date = item.getString("date");
list.add(new App(id, name, desc, content, icon,
date));//App 是自己定义的实体类
}
hashMap.put("datalist", list);
只要能读取json字符串就可以了。
这是什么意思,读取转换成什么类型的数据 javaBean?Map?
不管是要转换成什么了,说到底是解析字符串了,可以看一下json-lib,jackson这类json工作的源码,应该不会很简单,除非你的json串格式很固定。
查找" ' { [ 这些个特殊字符。使用正责可能会方便一些吧。楼主的问题倒是提醒有时间要看一下,这些开源项目的源码了。
将你要传到页面的值按照{ "people": [   { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },   { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},   { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }   ]} 名称值对的格式写好就行了
已解决问题
未解决问题18:34 提问
java json字符串解析,获取json字符串中数组的值
{"arr":["ipAddr","installationSite","imineSystemId","valid"],"login":0,"password":"","purview":"","userId":0,"userName":""}
怎么解析这个json字符串,我想获取arr数组里面的值,如:ipAddr,installationSite
按赞数排序
有这种格式的json字符串?反正我是没碰到过。。。"{}"、"[]"好好理解一下大括号与中括号的区别吧!
JSONObject arr = jsonObject.getJSONObject("arr");
JSONArray openids = data.getJSONArray("openid");
Iterator iterator = openids.iterator();
迭代iterator中的数据就可以了
在java里的json解析,无非就是转换成相应的对象,然后拿值进行处理
解析工具包可以用jackson或gson
楼主解决了吗?这个问题!!
其他相关推荐}

我要回帖

更多关于 字符串里添加内容 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信