json创建和解析
来源:互联网 发布:centos 安装nginx 编辑:程序博客网 时间:2024/05/06 00:14
生成的就是这样的String
{"command":"send","users":{"id":0,"trackinfo":[{"timestamp":"2014-11-07 16:57:31.801","id":0,"longitude":1.1,"latitude":2.2,"altitude":3.3,"telinfo":"2222"},{"timestamp":"2014-11-07 16:57:31.801","id":0,"longitude":2.1,"latitude":3.2,"altitude":4.3,"telinfo":"66666"}],"telno":"2222"},"ip":"172.13.231.201"}
生成的过程,括号冒号逗号这些都是自动生成的,而不是自己输入,看见有人是手动的自己一点点的加上,也可以吧,但是感觉那样会好麻烦。
直接上代码
static public String createJson(UserInfo userinfo) throws JSONException { JSONObject result=new JSONObject(); JSONObject user = new JSONObject(); user.put("id", userinfo.getId()); user.put("telno", userinfo.getTelno()); JSONArray trackarray=new JSONArray(); for (TrackInfo track:userinfo.getTrackList()) { JSONObject trackinfo=new JSONObject(); trackinfo.put("id", track.getId()); trackinfo.put("latitude",track.getLatitude()); trackinfo.put("longitude",track.getLongitude()); trackinfo.put("altitude", track.getAltitude()); trackinfo.put("timestamp", track.getTime()); trackinfo.put("telinfo", track.getTelinfo()); trackarray.put(trackinfo); } user.put("trackinfo", trackarray); result.put("users", user); return result.toString(); }
刚接触这个的可能乍一看会觉得很乱。其实,我的代码确实都挺乱的。。。注意JSONObject和JSONArray的使用。我这里有一个tracklist里是很多个trackinfo对象,track对象里有id,latitude等属性。
解析的话,其实对照创建的写就行了。
static public UserInfo DealJson(String jsonStr) throws JSONException { UserInfo user=new UserInfo(); JSONObject json= new JSONObject(jsonStr); JSONObject userjson= (JSONObject)json.get("users"); user.setId((int)userjson.get("id")); user.setTelno((String)userjson.get("telno")); JSONArray trackarray=(JSONArray)userjson.getJSONArray("trackinfo"); List<TrackInfo> tracklist = new ArrayList<TrackInfo>(); for (int i=0;i<trackarray.length();i++) { TrackInfo trackinfo=new TrackInfo(); JSONObject trackjson=(JSONObject)trackarray.get(i); trackinfo.setId((int)trackjson.get("id")); trackinfo.setLatitude((double)trackjson.get("latitude")); trackinfo.setLongitude((double)trackjson.get("longitude")); trackinfo.setAltitude((double)trackjson.get("altitude")); DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Timestamp ts = null; try { ts = new Timestamp(format.parse((String)trackjson.get("timestamp")).getTime()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } trackinfo.setTime(ts); trackinfo.setTelinfo((String)trackjson.get("telinfo")); tracklist.add(trackinfo); } user.setTrackList(tracklist); return user; }测试程序,
命名比较乱,写的时候比较急。以后一定多注意。
import java.sql.Timestamp;import java.util.ArrayList;import java.util.List;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);UserInfo userinfo = new UserInfo();userinfo.setId(0);userinfo.setTelno("2222"); Timestamp time = new Timestamp(System.currentTimeMillis()); TrackInfo trackinfo1=new TrackInfo(1.1, 2.2,3.3, time,"2222");TrackInfo trackinfo2=new TrackInfo(2.1, 3.2,4.3, time,"66666");List<TrackInfo> tracklist = new ArrayList<TrackInfo>();tracklist.add(trackinfo1);tracklist.add(trackinfo2);userinfo.setTrackList(tracklist);String str="";try {str = Json.createJson("send","172.13.231.201",userinfo);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(str);UserInfo userinfo2=new UserInfo();try {userinfo2=(UserInfo) Json.DealJson(str);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}String str2="";try {str2 = Json.createJson("send","172.13.231.201",userinfo2);} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(str2);} }
0 0
- 创建JSON和解析JSON
- json创建和解析
- json创建和解析
- JSON JSONArray 创建JSON 和 解析JSON
- JSON JSONArray 创建JSON 和 解析JSON
- Groovy创建和解析json
- java解析和创建JSON
- Groovy创建和解析json
- Android 创建和解析 Json
- android数据解析之json解析和json字符串创建
- iOS 使用SBJSON创建和解析JSON
- iOS 使用SBJSON创建和解析JSON
- C语言 JSON 的创建和解析
- Android手动创建和解析Json
- Android创建和解析JSON文本
- 创建和解析Json数据小Demo
- 对JSON格式数据的操作和解析和创建
- Android中xml和json文件的解析和创建
- vim中文乱码分析解决
- OpenWRT — 查看客户端(IP)即时流量
- 队列—链表与循环数组实现
- [转载]redis和 redis的php扩展
- Android音频系统的改进设想和展望 PulseAudio介绍
- json创建和解析
- php变量内存的控制
- (一)面试金典算法:数组与字符串
- 新的博客
- Android支持的音频格式
- php 用地址实现的无限级分类,简单几行
- 判断两个结构体相等
- c++若干知识点
- DevStore技术支持:Android推送方案