2012-07-20 64 views
-1

解析Android中的JSON包时遇到了一些困难。解析Android中的JSON包

我目前已经设置了一切,因此JSON是一个对象数组,然后每个对象都有一个属性数组。例如,假设我的包中有一个名为Colors的对象。然后,每个Color条目将位于Colors对象中。每个颜色条目也将具有R,G,B值的条目。

这种类型,我可以处理好。然而,我现在正在运行一个实例,其中的一个条目(其中R,G,B值)会有一个数组。我不知道如何去访问和处理它。

我打算更新一个JSON包的例子,因为我担心我不是很清楚。

编辑:这是JSON。假设我想访问ColorOverlays中的R值。 {“Package”:[{“ProgramId”:73,“TypeId”:68,“CategoryId”:null,“CategoryName”:null,“ThingId”:121,“ThingName “:”Mahalo“,”ThingDescription“:”让你的节日和拍一些镜头!“,”ThingPrice“:0.00,”SellerProductId“:null,”Number2“:1342655700,”Number1“:1342655700,”IsAvailable“:真, “ImageOverlays”:[{ “ThingId”:121, “ThingOverlayId”:295, “ImageOverlayBase64”:NULL, “ImageOverlayFileTypeExtension”:空, “宽度”:1024, “高度”:1024, “A”:1.00000, “BlendModeId”:1, “ORDERNUM”:2 “IsUseSource”:假}], “ColorOverlays”:[{ “ThingId”:121, “ThingOverlayId”:294, “R”:157.00000, “G”:71.00000, “B”:187.00000, “A”:0.52873, “BlendModeId”:6, “ORDERNUM”:1}], “ThingsampleImageBase64”:NULL, “ThingsampleImageFileTypeExtension”: “”, “ThingsampleImageWidth”:546, “ThingsampleImageHeight”:546 “捕获”:[{ “ThingCaptureId”:87, “ThingId”:121, “CaptureFrameOverlayId”:NULL, “IsRemoved” :假的, “ADDDATE”:1342637814, “LASTUPDATED”:1342637814, “饱和度”:0.0, “对比度”:0.0, “亮度”:0.0, “低”:空, “中”:空, “高”:空“IsBlackWhite”:NULL, “IsInvert”:NULL, “IsSepia”:空}], “IsRemoved”:假},{ “ProgramId”:73, “TYPEID”:68, “类别ID”:NULL, “类别名称” :null,“ThingId”:122,“ThingName”:“很多爱”,“ThingDescription”:“使用这个!”,“ThingPrice”:0.00,“SellerProductId”:null,“Number2”:1342667100,“Number1 “:1342667100,” IsAvailable “:真” ImageOverlays “:[{” ThingId “:122,” ThingOverlayId “:298,” ImageOverlayBase64 “:NULL,” ImageOverlayFileTypeExtension “:空,” 宽度 “:1024,” 高度“: 1024, “A”:1.00000, “BlendModeId”:4 “ORDERNUM”:3 “IsUseSource”:假}], “ColorOverlays”:[{ “ThingId”:122, “ThingOverlayId”:296, “R”: 213.00000, “G”:86.00000, “B”:143.00000, “A”:0.77777, “BlendModeId”:4 “ORDERNUM”:1},{ “ThingId”:122, “ThingOverlayId”:297, “R”: 127.00000, “G”:127.00000, “B”:127.00000, “A”:0.50000, “BlendModeId”:1, “ORDERNUM”:2}], “ThingsampleImageBase64”:NULL, “ThingsampleImageFileTypeExtension”: “”,“ThingsampleImag eWidth “:546,” ThingsampleImageHeight “:546,” 捕获 “:[{” ThingCaptureId “:88,” ThingId “:122,” CaptureFrameOverlayId “:NULL,” IsRemoved “:假” ADDDATE “:1342649164,” LASTUPDATED” :1342649164, “饱和度”:0.0, “对比度”:0.0, “亮度”:0.0, “低”:空, “中”:空, “高”:空, “IsBlackWhite”:空, “IsInvert”:空,“IsSepia”:null}],“IsRemoved”:false}]} ]}

+0

什么是JSON包? – fiddler 2012-07-20 14:33:14

+0

用过你的JSONObject.JSONArray类来操纵你的JSON或者用你Jackson/Gson? – throrin19 2012-07-20 14:44:40

+0

我一直在使用Gson。 – user1132897 2012-07-20 14:48:03

回答

1

您的代码示例对尝试提供帮助最有帮助。取决于你的RGB值数组是如何构建和传递的。如果它是一个简单的逗号分隔的字符串,那么你可以做:

try { 

     JSONArray jArray = new JSONArray(jString); 

     for (int i=0; i<jArray.length(); i++) { 

      JSONObject jo = jArray.getJSONObject(i); 
        String RGBVal = jo.getString("rgb_list"); 
        String[] rgbArray = RGBVal.split(","); 
        .... 

再次,取决于该条目是如何在JSON字符串传递。

没关系......

+0

你在我输入的时候发布了你的代码......如果可以,我会再次阅读并编辑我的答案。在此之前,请忽略我...... :) – wileyCoyote 2012-07-20 14:59:38