List of usage examples for com.google.gson.stream JsonReader endArray
public void endArray() throws IOException
From source file:com.sap.core.odata.core.ep.consumer.JsonLinkConsumer.java
License:Apache License
private List<String> readLinksArray(final JsonReader reader) throws IOException, EntityProviderException { List<String> links = new ArrayList<String>(); reader.beginArray();// ww w . j a v a 2 s. c o m while (reader.hasNext()) { reader.beginObject(); String nextName = reader.nextName(); if (FormatJson.URI.equals(nextName) && reader.peek() == JsonToken.STRING) { links.add(reader.nextString()); } else { throw new EntityProviderException( EntityProviderException.INVALID_CONTENT.addContent(FormatJson.URI).addContent(nextName)); } reader.endObject(); } reader.endArray(); return links; }
From source file:com.sap.core.odata.core.ep.consumer.JsonServiceDocumentConsumer.java
License:Apache License
private void readContent(final JsonReader reader) throws IOException, EdmException, EntityProviderException { currentHandledObjectName = reader.nextName(); if (FormatJson.ENTITY_SETS.equals(currentHandledObjectName)) { reader.beginArray();//w w w . ja v a2 s . co m readEntitySets(reader); reader.endArray(); } }
From source file:com.seleritycorp.common.base.coreservices.RawCoreServiceClient.java
License:Apache License
private void pushToWriter(JsonReader reader, JsonWriter writer) throws IOException { int count = 0; boolean isObject = reader.peek() == JsonToken.BEGIN_OBJECT; do {// www. jav a 2 s .co m JsonToken jsToken = reader.peek(); switch (jsToken) { case BEGIN_ARRAY: reader.beginArray(); writer.beginArray(); if (!isObject) { count++; } break; case END_ARRAY: reader.endArray(); writer.endArray(); if (!isObject) { count--; } break; case BEGIN_OBJECT: reader.beginObject(); writer.beginObject(); if (isObject) { count++; } break; case END_OBJECT: reader.endObject(); writer.endObject(); if (isObject) { count--; } break; case NAME: String name = reader.nextName(); writer.name(name); break; case STRING: String stringValue = reader.nextString(); writer.value(stringValue); break; case NUMBER: String numValue = reader.nextString(); writer.value(new BigDecimal(numValue)); break; case BOOLEAN: boolean boolValue = reader.nextBoolean(); writer.value(boolValue); break; case NULL: reader.nextNull(); writer.nullValue(); break; case END_DOCUMENT: return; default: return; } } while (count != 0); }
From source file:com.squareup.wire.MessageTypeAdapter.java
License:Apache License
private void parseUnknownField(JsonReader in, Message.Builder<M> builder, int tag) throws IOException { in.beginArray();// w w w .j a v a 2 s . c o m UnknownFieldType type = UnknownFieldType.of(in.nextString()); while (in.peek() != JsonToken.END_ARRAY) { switch (type) { case VARINT: builder.addVarint(tag, in.nextInt()); break; case FIXED32: builder.addFixed32(tag, in.nextInt()); break; case FIXED64: builder.addFixed64(tag, in.nextInt()); break; case LENGTH_DELIMITED: builder.addLengthDelimited(tag, ByteString.decodeBase64(in.nextString())); break; default: throw new AssertionError("Unknown field type " + type); } } in.endArray(); }
From source file:com.suny.whereami.service.google.Place.java
License:Open Source License
/** * Read fields from a result object.//w w w . java2 s . com * * @param fields * to read or 0 if all fields should be read * @param maxResults * maximum number of reviews, events, and photos to return */ Place(JsonReader in, int fields, int maxResults) throws IOException { in.beginObject(); while (in.hasNext()) { Key key = Key.get(in.nextName()); if (key == UNKNOWN || fields != 0 && key.mField != null && !key.mField.in(fields)) { /* unknown field or caller doesn't want it */ in.skipValue(); continue; } switch (key) { case id: mId = in.nextString(); break; case reference: mReference = in.nextString(); break; case icon: mIcon = in.nextString(); break; case url: mUrl = in.nextString(); break; case geometry: in.beginObject(); while (in.hasNext()) { if (in.nextName().equals("location")) { in.beginObject(); while (in.hasNext()) { switch (Key.get(in.nextName())) { case lat: mLat = in.nextDouble(); break; case lng: mLong = in.nextDouble(); break; default: in.skipValue(); } } in.endObject(); } else { in.skipValue(); // "viewport" } } in.endObject(); break; case name: mName = in.nextString(); break; case address_components: mAddress = new Address(in); break; case formatted_address: mFmtAddress = in.nextString(); break; case vicinity: mVicinity = in.nextString(); break; case international_phone_number: mIntlPhone = in.nextString(); break; case formatted_phone_number: mFmtPhone = in.nextString(); break; case website: mWebsite = in.nextString(); break; case types: types(in); break; case price_level: mPrice = in.nextInt(); break; case rating: mRating = (float) in.nextDouble(); break; case reviews: in.beginArray(); while (in.hasNext()) { if (mReviews == null) { int cap = Math.min(Math.max(0, maxResults), MAX_REVIEWS); mReviews = new ArrayList<Review>(cap > 0 ? cap : MAX_REVIEWS); } if (maxResults <= 0 || mReviews.size() < maxResults) { mReviews.add(new Review(in)); } else { in.skipValue(); } } in.endArray(); break; case opening_hours: in.beginObject(); while (in.hasNext()) { switch (Key.get(in.nextName())) { case open_now: mOpen = in.nextBoolean(); break; case periods: in.beginArray(); while (in.hasNext()) { if (mOpenHours == null) { mOpenHours = new ArrayList<OpeningHours>(); } mOpenHours.add(new OpeningHours(in)); } in.endArray(); break; default: in.skipValue(); } } in.endObject(); break; case events: in.beginArray(); while (in.hasNext()) { if (mEvents == null) { int cap = Math.min(Math.max(0, maxResults), MAX_EVENTS); mEvents = new ArrayList<Event>(cap > 0 ? cap : MAX_EVENTS); } if (maxResults <= 0 || mEvents.size() < maxResults) { mEvents.add(new Event(in)); } else { in.skipValue(); } } in.endArray(); break; case utc_offset: mUtcOffset = in.nextInt(); break; case photos: in.beginArray(); while (in.hasNext()) { if (mPhotos == null) { int cap = Math.min(Math.max(0, maxResults), MAX_PHOTOS); mPhotos = new ArrayList<Photo>(cap > 0 ? cap : MAX_PHOTOS); } if (maxResults <= 0 || mPhotos.size() < maxResults) { mPhotos.add(new Photo(in)); } else { in.skipValue(); } } in.endArray(); break; default: in.skipValue(); } } in.endObject(); }
From source file:com.suny.whereami.service.google.Place.java
License:Open Source License
/** * Read field values from a types array. *//* w ww . j a va 2 s. c o m*/ void types(JsonReader in) throws IOException { in.beginArray(); while (in.hasNext()) { if (mTypes == null) { mTypes = new ArrayList<String>(); } mTypes.add(in.nextString()); } in.endArray(); }
From source file:com.tapchatapp.android.client.TapchatService.java
License:Apache License
private void oobInclude(String path) throws Exception { mLoadingOobBacklog = true;/* ww w . j av a 2s . com*/ Response response = mAPI.oobInclude(path.substring(1)); JsonReader reader = new JsonReader(new InputStreamReader(response.getBody().in())); reader.beginArray(); while (reader.hasNext()) { Message message = mGson.fromJson(reader, Message.class); handleMessage(message); } reader.endArray(); reader.close(); mLoadingOobBacklog = false; handleMessageCache(); }
From source file:com.trellmor.berrymotes.sync.SubredditEmoteDownloader.java
License:Open Source License
private List<EmoteImage> downloadEmoteList() throws URISyntaxException, IOException, InterruptedException { checkInterrupted();//from ww w.java2 s.c om Log.debug("Downloading " + mSubreddit + EMOTES); HttpRequestBase request = new HttpGet(); request.setURI(new URI(EmoteDownloader.HOST + mSubreddit + EMOTES)); request.setHeader("If-Modified-Since", DateUtils.formatDate(mLastModified)); mEmoteDownloader.checkCanDownload(); HttpResponse response = mEmoteDownloader.getHttpClient().execute(request); switch (response.getStatusLine().getStatusCode()) { case 200: Log.debug(mSubreddit + EMOTES + " loaded"); // Download ok Header[] lastModified = response.getHeaders("last-modified"); if (lastModified.length > 0) { try { mLastModified = DateUtils.parseDate(lastModified[0].getValue()); } catch (DateParseException e) { Log.error("Error parsing last-modified header", e); } } HttpEntity entity = response.getEntity(); if (entity != null) { checkInterrupted(); File tmpFile = File.createTempFile(mSubreddit, null, mContext.getCacheDir()); try { InputStream is = entity.getContent(); try { mEmoteDownloader.checkStorageAvailable(); StreamUtils.saveStreamToFile(is, tmpFile); } finally { StreamUtils.closeStream(is); } FileInputStream fis = null; BufferedInputStream bis = null; GZIPInputStream zis = null; Reader isr = null; JsonReader jsonReader = null; checkInterrupted(); try { fis = new FileInputStream(tmpFile); bis = new BufferedInputStream(fis); zis = new GZIPInputStream(bis); isr = new InputStreamReader(zis, "UTF-8"); jsonReader = new JsonReader(isr); jsonReader.beginArray(); Gson gson = new Gson(); ArrayList<EmoteImage> emotes = new ArrayList<EmoteImage>(); while (jsonReader.hasNext()) { EmoteImage emote = gson.fromJson(jsonReader, EmoteImage.class); emotes.add(emote); } jsonReader.endArray(); Log.info("Loaded " + mSubreddit + EMOTES + ", size: " + Integer.toString(emotes.size())); return emotes; } finally { StreamUtils.closeStream(jsonReader); StreamUtils.closeStream(isr); StreamUtils.closeStream(zis); StreamUtils.closeStream(bis); StreamUtils.closeStream(fis); } } finally { tmpFile.delete(); } } break; case 304: Log.info(mSubreddit + EMOTES + " already up to date (HTTP 304)"); break; case 403: case 404: Log.info(mSubreddit + " missing on server, removing emotes"); mEmoteDownloader.deleteSubreddit(mSubreddit, mContentResolver); break; default: throw new IOException("Unexpected HTTP response: " + response.getStatusLine().getReasonPhrase()); } return null; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static <T> ArrayList<T> parseArray(Gson gson, JsonReader reader, Class<T> clazz) throws IOException { if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_ARRAY) { reader.skipValue();// www . java 2 s . c o m return null; } reader.beginArray(); ArrayList<T> list = Stag.readListFromAdapter(gson, clazz, reader); reader.endArray(); return list; }
From source file:controllers.ParseController.java
@RequestMapping("/show") public String showParseForm(Map<String, Object> model) throws Exception { File file = new File("/usr/local/etc/newFile"); if (file.exists()) { ArrayList<String> keys = new ArrayList(); //FileReader flr = new FileReader(file); InputStream is = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(is, "UTF-8"); JsonReader reader = new JsonReader(isr); try {/*from ww w . ja v a2 s. c om*/ int col = 0; int numbern = 1; BufferedReader br = new BufferedReader(new FileReader(file)); /*br.skip(160584580); for(int i=0;i<100000;i++){ keys.add(br.readLine()); }*/ reader.beginObject(); while (reader.hasNext()) { String objectName = reader.nextName(); keys.add("Mainobj - " + objectName); //if(objectName.equals("color_groups")||objectName.equals("colors")||objectName.equals("features")||objectName.equals("constants")){ if (objectName.equals("color_groups")) { reader.skipValue(); } /*else if(objectName.equals("car_property_groups")){ reader.beginArray(); while(reader.hasNext()){ reader.beginObject(); CarPropertyGroup newCPG = new CarPropertyGroup(); Long cpgOldId = null; List<CarProperty> propList = new ArrayList(); while(reader.hasNext()){ String carPropertyGroupParamName = reader.nextName(); switch (carPropertyGroupParamName){ case "id": cpgOldId = reader.nextLong(); newCPG.setOldId(cpgOldId); break; case "parent_id": newCPG.setParentId(reader.nextLong()); break; case "title": newCPG.setTitle(reader.nextString()); break; case "sort": newCPG.setSort(reader.nextLong()); break; case "is_hidden": switch (reader.nextInt()){ case 0: newCPG.setIsHidden(false); break; case 1: newCPG.setIsHidden(true); break; default : newCPG.setIsHidden(null); break; } break; case "is_publish": newCPG.setIsPublish(reader.nextBoolean()); break; case "car_properties": reader.beginArray(); while (reader.hasNext()) { CarProperty cp = new CarProperty(); reader.beginObject(); while (reader.hasNext()) { String cpParamName = reader.nextName(); switch (cpParamName) { case "id": cp.setOldId(reader.nextLong()); break; case "title": cp.setTitle(reader.nextString()); break; case "sort": cp.setSort(reader.nextLong()); break; case "unit": cp.setUnit(reader.nextString()); break; case "type": cp.setType(reader.nextString()); break; case "key": cp.setCpKey(reader.nextString()); break; } } cp.setCPG(newCPG); reader.endObject(); propList.add(cp); } reader.endArray(); } } reader.endObject(); //newCPG.setCPs(propList); //+savecpg carPropertyGroupService.create(newCPG); for(CarProperty ncp:propList){ ncp.setCPG(carPropertyGroupService.findByOldId(cpgOldId)); carPropertyService.create(ncp); } } reader.endArray(); }*//* else if (objectName.equals("car_completion_groups")) { reader.beginArray(); //1 group while (reader.hasNext()) { reader.beginObject(); Long ccgId = null; Long ccgPId = null; String ccgTitle = ""; Long ccgSort = null; Boolean ccgIsHidden = null; Boolean ccgIsOptionReq = null; Boolean ccgIsPublish = null; while (reader.hasNext()) { String ccgParamName = reader.nextName(); switch (ccgParamName) { case "id": ccgId = reader.nextLong(); break; case "parent_id": ccgPId = reader.nextLong(); break; case "title": ccgTitle = reader.nextString(); break; case "sort": ccgSort = reader.nextLong(); break; case "is_hidden": ccgIsHidden = reader.nextBoolean(); break; case "is_option_require": ccgIsOptionReq = reader.nextBoolean(); break; case "is_publish": ccgIsPublish = reader.nextBoolean(); break; case "car_completion_options": reader.beginArray(); while (reader.hasNext()) { CarCompletionOption cco = new CarCompletionOption(); reader.beginObject(); while (reader.hasNext()) { String ccoParamName = reader.nextName(); switch (ccoParamName) { case "id": cco.setOldId(reader.nextLong()); break; case "title": cco.setTitle(reader.nextString()); break; case "sort": cco.setSort(reader.nextLong()); break; case "key": cco.setCcoKey(reader.nextString()); break; case "title_full": cco.setTitleFull(reader.nextString()); break; } } reader.endObject(); cco.setCCG(carCompletionGroupService.findByOldId(ccgId)); carCompletionOptionService.createParam(cco); } reader.endArray(); break; } } CarCompletionGroup ccg = new CarCompletionGroup(); ccg.setOldId(ccgId); ccg.setIsHidden(ccgIsHidden); ccg.setIsOptReq(ccgIsOptionReq); ccg.setIsPublish(ccgIsPublish); ccg.setParentId(ccgPId); ccg.setSort(ccgSort); ccg.setTitle(ccgTitle); //save carCompletionGroupService.create(ccg); reader.endObject(); } reader.endArray(); }*/ else if (objectName.equals("never"/*"cars"*/)) { reader.beginArray(); while (reader.hasNext()) { //keys.add("--{"); reader.beginObject(); Long markquto = null; String markpop = ""; String marktitle = ""; String markrus = ""; String markdesc = ""; while (reader.hasNext()) { String keyName = reader.nextName(); /*if (keyName.equals("title")) { //keys.add("title: " + reader.nextString()); marktitle = reader.nextString(); } else if (keyName.equals("title_rus")) { //keys.add("rus: " + reader.nextString()); markrus = reader.nextString(); } else if (keyName.equals("quto_id")) { //keys.add("id: " + reader.nextInt()); markquto = reader.nextLong(); } else if (keyName.equals("description")) { //keys.add("desc: " + reader.nextString()); markdesc = reader.nextString(); } else if (keyName.equals("is_popular")) { //keys.add("pop: " + reader.nextString()); markpop = reader.nextString(); } else*/ if (keyName.equals("car_models")) { //reader.skipValue(); reader.beginArray(); while (reader.hasNext()) { Long qutoMod = null; String popMod = ""; String titleMod = ""; String rusMod = ""; //if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { reader.beginObject(); while (reader.hasNext()) { //if (reader.peek().equals(JsonToken.NAME)) { String CarModelParamName = reader.nextName(); /*if (CarModelParamName.equals("title")) { //keys.add("title: " + reader.nextString()); titleMod = reader.nextString(); } else if (CarModelParamName.equals("title_rus")) { //keys.add("rus: " + reader.nextString()); rusMod = reader.nextString(); } else */ if (CarModelParamName.equals("quto_id")) { //keys.add("id: " + reader.nextInt()); qutoMod = reader.nextLong(); } /*else if (CarModelParamName.equals("is_popular")) { //keys.add("desc: " + reader.nextString()); popMod = reader.nextString(); }*/ else if (CarModelParamName.equals("car_model_subs")) { reader.skipValue(); /*reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); SubModel sm = new SubModel(); Long smquto_id = null; String url = ""; String smtitle = null; String smtype = ""; String smclass = ""; String smbody = ""; Integer doorsCount = null; keys.add("obj["); while (reader.hasNext()){ String carModelSubParam = reader.nextName(); if(carModelSubParam.equals("quto_id")){ smquto_id = reader.nextLong(); }else if(carModelSubParam.equals("url")){ url=reader.nextString(); }else if(carModelSubParam.equals("title")){ smtitle=reader.nextString(); }else if(carModelSubParam.equals("type")){ smtype=reader.nextString(); }else if(carModelSubParam.equals("class")){ smclass=reader.nextString(); }else if(carModelSubParam.equals("body")){ smbody=reader.nextString(); }else if(carModelSubParam.equals("doors_count")){ doorsCount = reader.nextInt(); }else{ reader.skipValue(); } } sm.setBody(smbody); sm.setCarClass(smclass); sm.setDoorsCount(doorsCount); sm.setQutoModelSubId(smquto_id); sm.setTitle(smtitle); sm.setType(smtype); sm.setUrl(url); keys.add(numbern+" url="+url+"; body="+smbody+"; class="+smclass+"; doors="+doorsCount+"; id="+smquto_id+"; title="+smtitle+"; type="+smtype+";"); keys.add("]"); subModelService.create(sm); reader.endObject(); } reader.endArray();*/ } else if (CarModelParamName .equals("never"/*"car_model_sub_generations"*/)) { reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); Long qcmsgId = null; Long qcmsId = null; Long qcmgId = null; Boolean qisNew = null; Double cmsgprice = null; //List<CarColorValue> ccvList = new ArrayList(); while (reader.hasNext()) { String carModelSubGenParam = reader.nextName(); if (carModelSubGenParam.equals("quto_id")) { qcmsgId = reader.nextLong(); } else if (carModelSubGenParam .equals("quto_car_model_sub_id")) { qcmsId = reader.nextLong(); } else if (carModelSubGenParam .equals("quto_car_model_generation_id")) { qcmgId = reader.nextLong(); } else if (carModelSubGenParam.equals("price_min")) { cmsgprice = reader.nextDouble(); } else if (carModelSubGenParam.equals("is_new")) { Integer supInt = reader.nextInt(); if (supInt == 0) { qisNew = false; } else if (supInt == 1) { qisNew = true; } } else if (carModelSubGenParam.equals("colors")) { reader.skipValue(); /*reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); //CarColorValue ccv = new CarColorValue(); String ColId = ""; String ColgId = ""; String colName = ""; String colSort = ""; while (reader.hasNext()) { String colorParamName = reader.nextName(); switch (colorParamName){ case "car_color_id": ColId = reader.nextString(); //keys.add(colorParamName+" = "+ColId); //reader.skipValue(); break; case "car_color_group_id": ColgId = reader.nextString(); //keys.add(colorParamName+" = "+ColgId); //reader.skipValue(); break; case "title": colName = reader.nextString(); //keys.add(colorParamName+" = "+colName); //reader.skipValue(); break; case "sort": colSort = reader.nextString(); //keys.add(colorParamName+" = "+colSort); //reader.skipValue(); break; default: col++; keys.add("skippedColorP+"+reader.peek().name()); reader.skipValue(); break; } } reader.endObject(); ccv.setTitle(colName); ccv.setColor(colorService.findByOldId(Long.valueOf(ColId))); ccv.setColorGroup(colorGroupService.findByOldId(Long.valueOf(ColgId))); ccvList.add(ccv); //reader.skipValue(); } reader.endArray();*/ } else if (carModelSubGenParam.equals("media")) { reader.skipValue(); } else if (carModelSubGenParam.equals("car_completions")) { reader.skipValue(); /*reader.beginArray(); while (reader.hasNext()) { //keys.add(carModelSubGenParam+" - "+reader.peek().name()); reader.beginObject(); while (reader.hasNext()) { String keyname = reader.nextName(); String token = ""; if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) { token = "array"; reader.skipValue(); } else if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { token = "object"; reader.skipValue(); } else if (reader.peek().equals(JsonToken.NUMBER)) { token = StringAdapter.getString(reader.nextLong()); } else { token = reader.nextString(); } keys.add("n: " + keyname + " - " + token); //keys.add("ccname: "+reader.peek().name()); //reader.skipValue(); } reader.endObject(); //reader.skipValue(); } reader.endArray();**/ } else if (carModelSubGenParam .equals("car_modifications")) { reader.beginArray(); while (reader.hasNext()) { //keys.add(carModelSubGenParam+" - "+reader.peek().name()); String carTitle = ""; Long cmqId = null; Long completionOldId = null; Double cmPrice = null; boolean archive = false; Boolean is_new = qisNew; Long cmgqId = qcmsId; Long cmsqId = qcmgId; Long cmsgqId = qcmsgId; Double cmsgPrice = cmsgprice; //Model carMod = modelService.findByOldId(qutoMod); List<PropertyName> propertyNames = new ArrayList(); ArrayList<Feature> features = new ArrayList(); ArrayList<CarOptionValue> carOptionValues = new ArrayList(); //keys.add("--" + titleMod); reader.beginObject(); while (reader.hasNext()) { /*if(reader.peek().equals(JsonToken.BEGIN_ARRAY)){ reader.beginArray(); while (reader.hasNext()) { if(reader.peek().equals(JsonToken.BEGIN_OBJECT)){ reader.beginObject(); keys.add("object:"); while(reader.hasNext()){ if(reader.peek().equals(JsonToken.NAME)){ keys.add("name: "+reader.nextName()); }else{ keys.add("other: "+reader.peek().name()); reader.skipValue(); } //String keyname = reader.peek().name(); //keys.add("kn"+keyname); } reader.endObject(); } //reader.skipValue(); } reader.endArray(); }else{*/ //reader.skipValue(); /*if(reader.peek().equals(JsonToken.BEGIN_ARRAY)){ reader.beginArray(); }else if(reader.peek().equals(JsonToken.END_ARRAY)){ reader.endArray(); }else if(reader.peek().equals(JsonToken.BEGIN_OBJECT)){ reader.beginObject(); }else if(reader.peek().equals(JsonToken.END_OBJECT)){ reader.endObject(); }else{*/ String carParamName = reader.nextName(); switch (carParamName) { case "quto_id": cmqId = reader.nextLong(); break; case "title": carTitle = reader.nextString(); keys.add(carTitle); break; case "completion_id": completionOldId = reader.nextLong(); break; case "price_min": cmPrice = reader.nextDouble(); break; case "is_archive": archive = reader.nextBoolean(); break; case "features": reader.skipValue(); /*reader.beginArray(); while(reader.hasNext()){ if(reader.peek().equals(JsonToken.STRING)){ Long num = Long.valueOf(reader.nextString()); Feature f = featureService.findByOldId(num); features.add(f); }else{ reader.skipValue(); } } reader.endArray();*/ break; case "car_completion_options": reader.skipValue(); /*if (archive) { reader.skipValue(); } else { //List<CarOptionValue> ccoList = new ArrayList(); //reader.skipValue(); reader.beginArray(); while (reader.hasNext()) { if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { reader.beginObject(); CarOptionValue cov = new CarOptionValue(); Long ccoOldId = null; while (reader.hasNext()) { if (reader.peek().equals(JsonToken.NAME)) { String ccoKey = reader.nextName(); switch (ccoKey) { case "id": cov.setOldId(reader.nextLong()); break; case "car_completion_option_id": ccoOldId = reader.nextLong(); cov.setCcoOldId(ccoOldId); break; case "title": if(reader.peek().equals(JsonToken.NULL)){ cov.setTitle(" ?"); reader.skipValue(); }else if (reader.peek().equals(JsonToken.STRING)) { String name = reader.nextString(); if(name.equals("")||name.equals("null")||name.equals("NULL")){ cov.setTitle(" ?"); }else{ cov.setTitle(name); } //keys.add("title == " + reader.nextString()); } else { keys.add("title == " + reader.peek().name()); cov.setTitle(" ?"); reader.skipValue(); } break; case "description": if (reader.peek().equals(JsonToken.STRING)) { cov.setDescription(reader.nextString()); } else { reader.skipValue(); } break; case "sort": cov.setSort(reader.nextLong()); break; case "price": if (reader.peek().equals(JsonToken.NUMBER)) { keys.add(cov.getTitle()+" -- " + reader.nextDouble() + " -num-"); cov.setPrice(reader.nextDouble()); }else if(reader.peek().equals(JsonToken.STRING)){ String stri = reader.nextString(); keys.add(cov.getTitle()+" -- " + StringAdapter.toDouble(stri) + " -str-"); cov.setPrice(StringAdapter.toDouble(stri)); }else { keys.add("priceclass = -- " + reader.peek().name()); cov.setPrice(Double.valueOf("0")); reader.skipValue(); } break; case "is_package": Integer packKey = reader.nextInt(); if (packKey == 0) { cov.setIsPack(false); } else if (packKey == 1) { cov.setIsPack(true); } else { reader.skipValue(); } break; default: reader.skipValue(); break; } }else{ //keys.add("nename --- " + reader.peek().name()); reader.skipValue(); } } cov.setCCO(carCompletionOptionService.findByOldId(ccoOldId)); cov.setCar(carService.findByOldId(cmqId)); //model.put("error", carService.findByOldId(cmqId)); model.put("error", carService.getResult().getErrors()); //keys.add(cov.getTitle()); carService.create(cov); reader.endObject(); } else{ //keys.add("-+-"+reader.peek().name()); reader.skipValue(); } } reader.endArray(); }*/ break; case "car_properties": //reader.skipValue(); if (!archive) { reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); PropertyName pn = new PropertyName(); /*Long pnId = Long.valueOf(0); String pnVal = "";*/ while (reader.hasNext()) { String propKey = reader .nextName(); switch (propKey) { case "id": CarProperty cp = carPropertyService .findByOldId(reader .nextLong()); pn.setCarProperty(cp); /*if(cp.getRadical()!=null){ pn.setRadical(cp.getRadical()); }*/ break; case "value": pn.setPropertyNameValue( reader.nextString()); break; default: reader.skipValue(); break; } //propertyNames.add(pn); } pn.setCar(carService .findByOldId(cmqId)); keys.add(pn.getCar().getTitle() + " - " + pn.getCarProperty() .getTitle() + " - " + pn.getPropertyNameValue() + "-" + pn.getRadical()); //propertyNameService.create(pn); reader.endObject(); } reader.endArray(); } else { reader.skipValue(); } break; default: reader.skipValue(); break; } //} } /*if(!archive&&(cmPrice!=Double.valueOf(0)||cmsgPrice!=Double.valueOf(0))){ Car newCar = new Car(); keys.add("------------------"); keys.add("cmPrice="+cmPrice); keys.add("cmgqId="+cmgqId); keys.add("cmqId="+cmqId); keys.add("cmsgPrice="+cmsgPrice); keys.add("cmsgqId="+cmsgqId); keys.add("cmsqId="+cmsqId); keys.add("completionOldId="+completionOldId); keys.add("qisNew="+is_new); keys.add("carTitle="+carTitle); keys.add("carMod="+carMod.getTitle()); keys.add("features:"); for(Feature f:features){ keys.add(f.getTitle()); } keys.add("props:"); newCar.setCmPrice(cmPrice); newCar.setCmgqId(cmgqId); newCar.setCmqId(cmqId); newCar.setCmsgPrice(cmsgPrice); newCar.setCmsgqId(cmsgqId); newCar.setCmsqId(cmsqId); newCar.setCompletionOldId(completionOldId); newCar.setIsNew(is_new); newCar.setTitle(carTitle); newCar.setModel(carMod); carService.create(newCar); if(!features.isEmpty()){ carService.updateFeaturesInCar(features, cmqId); } }*/ /*if (!propertyNames.isEmpty()) { carService.updatePropertiesInCar(propertyNames, cmqId); }*/ reader.endObject(); /*if(!archive){ for(CarColorValue c:ccvList){ Car car = carService.findByOldId(cmqId); c.setCar(car); keys.add("car="+car.getTitle()); keys.add("t="+c.getTitle()); keys.add("c="+c.getColorGroup().getTitle()); keys.add("cg="+c.getColor().getTitle()); carColorValueService.create(c); } }*/ } reader.endArray(); } else { reader.skipValue(); } } reader.endObject(); } reader.endArray(); } /* elseif (CarModelParamName.equals("car_model_generations")) { keys.add("---cmg---"); reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); while (reader.hasNext()) { keys.add("name: " + reader.nextName()); reader.skipValue(); } reader.endObject(); } reader.endArray(); } else if (CarModelParamName.equals("car_model_sub_generations")) { keys.add("---cmsg---"); reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); while (reader.hasNext()) { keys.add("name: " + reader.nextName()); reader.skipValue(); } reader.endObject(); } reader.endArray(); } */ else { reader.skipValue(); } /*} else { keys.add("---NotName"); reader.skipValue(); }*/ } /*keys.add("id: " + qutoMod); keys.add("pop: " + popMod); keys.add("title: " + titleMod); keys.add("rus " + rusMod); Model mod = new Model(); mod.setMark(markService.getExistedMark(quto)); mod.setPop(popMod); mod.setQutoId(qutoMod); mod.setTitle(titleMod); mod.setTitleRus(rusMod); modelService.create(mod);*/ reader.endObject(); /*} else { keys.add("-ElseName"); reader.skipValue(); }*/ } reader.endArray(); } else { reader.skipValue(); } /*keys.add("--name: " + keyName); if (reader.peek().equals(JsonToken.STRING)) { keys.add(reader.nextString()); } else if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) { //reader.beginArray(); reader.skipValue(); keys.add("--:[array]"); //reader.endArray(); } else if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { //reader.beginObject(); reader.skipValue(); keys.add("--:{object}"); //reader.beginObject(); } else if(reader.peek().equals(JsonToken.NULL)){ reader.skipValue(); keys.add("--:null"); } else if(reader.peek().equals(JsonToken.NUMBER)){ //reader.skipValue(); keys.add("--:number"+reader.nextInt()); } else if(reader.peek().equals(JsonToken.NAME)){ reader.skipValue(); keys.add("--:name"); }else { keys.add("---smthwrong"); reader.skipValue(); }*/ } /*Mark m = new Mark(); m.setQutoId(quto); m.setDescription(desc); m.setPop(pop); m.setTitle(title); m.setTitleRus(rus); markService.create(m);*/ /*keys.add("id: " + quto); keys.add("desc: " + desc); keys.add("pop: " + pop); keys.add("title: " + title); keys.add("rus " + rus);*/ reader.endObject(); //keys.add("--}"); /*if (reader.peek().equals(JsonToken.NAME)) { String keyName = reader.nextName(); keys.add("--name: " + keyName); reader.skipValue(); }else if(reader.peek().equals(JsonToken.BEGIN_OBJECT)){ keys.add("--someObj"); reader.beginObject(); while (reader.hasNext()) { if(reader.peek().equals(JsonToken.NAME)){ keys.add(reader.nextName()); if(reader.peek().equals(JsonToken.BEGIN_ARRAY)){ keys.add("---[Array]"); }else if(reader.peek().equals(JsonToken.STRING)){ keys.add("---"+reader.nextString()); }else{ keys.add("---notStringNontArr"); reader.skipValue(); } reader.skipValue(); }else{ keys.add("not a name"); reader.skipValue(); } } reader.endObject(); }else{ keys.add("notName¬Obj"); reader.skipValue(); }*/ } reader.endArray(); //keys.add("-}"); /* } else { keys.add("--notOnj¬Arr"); reader.skipValue(); }*/ } else { reader.skipValue(); } } reader.endObject(); for (String err : carService.getResult().getErrors()) { keys.add(err); } //keys.add("col="+StringAdapter.getString(col)); model.put("keys", keys); reader.close(); } catch (Exception e) { model.put("error", "? ? :" + StringAdapter.getStackTraceException(e)); reader.close(); return "ParseShow"; } } /*File file = new File("/usr/local/etc/newFile"); if (file.exists()) { ArrayList<String> keys = new ArrayList(); JsonReader reader = new JsonReader(new FileReader(file)); try { reader.beginObject(); while (reader.hasNext()) { String objectName = reader.nextName(); if (objectName.equals("colors")) { reader.beginObject(); while (reader.hasNext()) { String colorNameId = reader.nextName(); reader.beginObject(); Long oldColorId = Long.valueOf("0"); String title = "0"; String titleEng = "0"; while (reader.hasNext()) { String objectField = reader.nextName(); if (objectField.equals("id")) { oldColorId = reader.nextLong(); } if (objectField.equals("title")) { title = reader.nextString(); } if (objectField.equals("title_eng")) { titleEng = reader.nextString(); } if (objectField.equals("aliases")) { String oldId = ""; String name = ""; if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) { reader.beginArray(); reader.endArray(); oldId = "0"; name = "? "; Color c = new Color(); c.setName(name); c.setTitle(title); c.setTitleEng(titleEng); c.setOldGroupId(oldColorId); c.setOldId(Long.valueOf(oldId)); colorService.createColor(c); //keys.add(oldColorId + " - " + title + " - " + titleEng + " - " + oldId + " - " + name); } else { reader.beginObject(); while (reader.hasNext()) { oldId = reader.nextName(); name = reader.nextString(); Color c = new Color(); c.setName(name); c.setTitle(title); c.setTitleEng(titleEng); c.setOldGroupId(oldColorId); c.setOldId(Long.valueOf(oldId)); colorService.createColor(c); //keys.add(oldColorId + " - " + title + " - " + titleEng + " - " + oldId + " - " + name); } reader.endObject(); } } } reader.endObject(); } reader.endObject(); } else if (objectName.equals("color_groups")) { reader.beginObject(); while (reader.hasNext()) { String colorGroupNameId = reader.nextName(); reader.beginObject(); Long oldGroupId = Long.valueOf("0"); String title = ""; while (reader.hasNext()) { String objectField = reader.nextName(); if (objectField.equals("id")) { oldGroupId = reader.nextLong(); } else if (objectField.equals("title")) { title = reader.nextString(); } else if (objectField.equals("aliases")) { reader.beginObject(); while (reader.hasNext()) { String oldId = reader.nextName(); String name = reader.nextString(); ColorGroup cg = new ColorGroup(); cg.setName(name); cg.setTitle(title); cg.setOldGroupId(oldGroupId); cg.setOldId(Long.valueOf(oldId)); colorGroupService.createColorGroup(cg); //keys.add(oldGroupId + " - " + title + " - " + oldId + " - " + name); } reader.endObject(); } } reader.endObject(); } reader.endObject(); //keys.add(name); } else if (objectName.equals("features")) { reader.beginObject(); while (reader.hasNext()) { String featureNameId = reader.nextName(); reader.beginObject(); Long featureId = Long.valueOf("0"); String title = ""; String description = ""; Long cmgId = null; Long ccoId = null; String media = ""; while (reader.hasNext()) { String objectField = reader.nextName(); if (objectField.equals("id")) { featureId = reader.nextLong(); } else if (objectField.equals("title")) { title = reader.nextString(); } else if (objectField.equals("description")) { description = reader.nextString(); } else if (objectField.equals("car_model_generation_id")) { if (!reader.peek().equals(JsonToken.NULL)) { cmgId = reader.nextLong(); } else { reader.skipValue(); } } else if (objectField.equals("car_completion_option_id")) { if (!reader.peek().equals(JsonToken.NULL)) { ccoId = reader.nextLong(); } else { reader.skipValue(); } } else if (objectField.equals("media")) { //reader.skipValue(); if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { reader.beginObject(); while (reader.hasNext()) { if (reader.peek().equals(JsonToken.NAME)) { String mediaName = reader.nextName(); media += mediaName + " : [ "; reader.beginArray(); while (reader.hasNext()) { media += " { "; reader.beginObject(); while (reader.hasNext()) { String mediaParamName = reader.nextName(); media += mediaParamName + " : "; if (!mediaParamName.equals("url")) { if (!reader.peek().equals(JsonToken.NULL)) { media += reader.nextString(); } else { reader.skipValue(); media += "null"; } } else { reader.beginObject(); media += "{"; while (reader.hasNext()) { media += reader.nextName() + " : " + reader.nextString(); } media += "}"; reader.endObject(); } } reader.endObject(); media += " } "; } reader.endArray(); media += " ] "; } } reader.endObject(); } else { reader.skipValue(); } } } reader.endObject(); Feature f = new Feature(); f.setOldId(featureId); f.setTitle(title); f.setDescription(description); f.setCmgId(cmgId); f.setCcoId(ccoId); f.setMedia(media); //keys.add(featureId + " - " + title + " - " + description + " - " + cmgId + " - " + ccoId + " - " + media); featureService.createFeature(f); } reader.endObject(); } else { reader.skipValue(); } } reader.endObject(); model.put("keys", keys); reader.close(); } catch (Exception e) { model.put("error", "? ? :" + StringAdapter.getStackTraceException(e)); reader.close(); return "ParseShow"; } }*/ return "ParseShow"; }