android.util.JsonReader#skipValue ( )源码实例Demo

下面列出了android.util.JsonReader#skipValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@NonNull
private static CrashlyticsReport.FilesPayload.File parseFile(@NonNull JsonReader jsonReader)
    throws IOException {
  final CrashlyticsReport.FilesPayload.File.Builder builder =
      CrashlyticsReport.FilesPayload.File.builder();

  jsonReader.beginObject();
  while (jsonReader.hasNext()) {
    String name = jsonReader.nextName();
    switch (name) {
      case "filename":
        builder.setFilename(jsonReader.nextString());
        break;
      case "contents":
        builder.setContents(Base64.decode(jsonReader.nextString(), Base64.NO_WRAP));
        break;
      default:
        jsonReader.skipValue();
        break;
    }
  }
  jsonReader.endObject();

  return builder.build();
}
 
源代码2 项目: firefox-echo-show   文件: BlocklistProcessor.java
public static Map<String, Trie> loadCategoryMap(final JsonReader reader, final Map<String, Trie> categoryMap, final ListType listType) throws IOException {
    reader.beginObject();

    while (reader.hasNext()) {
        final String name = reader.nextName();

        if (name.equals("categories")) {
            extractCategories(reader, categoryMap, listType);
        } else {
            reader.skipValue();
        }
    }

    reader.endObject();

    return categoryMap;
}
 
源代码3 项目: NClientV2   文件: GalleryData.java
private void readImages(JsonReader jr) throws IOException {
    int actualPage=0;
    jr.beginObject();
    while (jr.peek()!=JsonToken.END_OBJECT){
        switch (jr.nextName()){
            case "cover":
                cover= new Page(ImageType.COVER,jr);
                break;
            case "pages":
                jr.beginArray();
                while(jr.hasNext())
                    pages.add(new Page(ImageType.PAGE,jr,actualPage++));
                jr.endArray();
                break;
            case "thumbnail":
                thumbnail= new Page(ImageType.THUMBNAIL,jr);
                break;
            default:
                jr.skipValue();
                break;
        }
    }
    jr.endObject();
    pages.trimToSize();
}
 
源代码4 项目: android-galaxyzoo   文件: DecisionTree.java
private static void readJsonQuestion(final JsonReader reader, final Question question) throws IOException {
    reader.beginObject();
    while (reader.hasNext()) {
        final String name = reader.nextName();
        switch (name) {
            case "text":
                question.setText(reader.nextString());
                break;
            case "title":
                question.setTitle(reader.nextString());
                break;
            case "help":
                question.setHelp(reader.nextString());
                break;
            case "answers":
                readJsonAnswers(reader, question);
                break;
            case "checkboxes":
                readJsonCheckboxes(reader, question);
                break;
            default:
                reader.skipValue();
        }
    }
    reader.endObject();
}
 
源代码5 项目: android_maplib   文件: GeoPoint.java
@Override
public void setCoordinatesFromJSONStream(JsonReader reader, int crs) throws IOException {
    setCRS(crs);
    reader.beginArray();
    int pos = 0;
    while (reader.hasNext()) {
        if(pos == 0)
            mX = reader.nextDouble();
        else if(pos == 1)
            mY = reader.nextDouble();
        else
            reader.skipValue();
        pos++;
    }
    reader.endArray();
}
 
OpenHours readOpeningHours(JsonReader reader) throws IOException {
    boolean openNow = false;
    List<OpenPeriod> periods = null;

    reader.beginObject();
    while (reader.hasNext()) {
        switch (reader.nextName()) {
            case "open_now":
                openNow = reader.nextBoolean();
                break;
            case "periods":
                periods = readOpenPeriodsArray(reader);
                break;
            default:
                reader.skipValue();
                break;
        }
    }
    reader.endObject();
    return new OpenHours(openNow, periods);
}
 
源代码7 项目: NClientV2   文件: User.java
public User(JsonReader reader) throws IOException {
    reader.beginObject();
    while(reader.peek()!= JsonToken.END_OBJECT){
        switch (reader.nextName()){
            case "id":id=reader.nextInt();break;
            case "post_date":username=reader.nextString();break;
            case "avatar_url":avatarUrl=reader.nextString();break;
            default:reader.skipValue();break;
        }
    }
    reader.endObject();
}
 
源代码8 项目: NClientV2   文件: Page.java
public Page(ImageType type, JsonReader reader,int page)throws IOException{
    this.imageType=type;
    this.page=page;
    reader.beginObject();
    while (reader.peek()!= JsonToken.END_OBJECT){
        switch (reader.nextName()){
            case "t":imageExt=stringToExt(reader.nextString()); break;
            case "w":size.setWidth(reader.nextInt());  break;
            case "h":size.setHeight(reader.nextInt()); break;
            default:reader.skipValue();break;
        }
    }
    reader.endObject();
}
 
List<AddressComponent> readAddressComponentsArray(JsonReader reader) throws IOException {
    List<AddressComponent> addressComponents = new ArrayList<>();

    reader.beginArray();
    while (reader.hasNext()) {
        String longName = null;
        String shortName = null;
        List<AddressComponentType> types = null;

        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.nextName()) {
                case "long_name":
                    longName = reader.nextString();
                    break;
                case "short_name":
                    shortName = reader.nextString();
                    break;
                case "types":
                    types = readAddressComponentTypesArray(reader);
                    break;
                default:
                    reader.skipValue();
                    break;
            }
        }
        reader.endObject();
        addressComponents.add(new AddressComponent(longName, shortName, types));
    }
    reader.endArray();
    return addressComponents;
}
 
源代码10 项目: Indic-Keyboard   文件: JsonUtils.java
public static List<Object> jsonStrToList(final String s) {
    final ArrayList<Object> list = new ArrayList<>();
    final JsonReader reader = new JsonReader(new StringReader(s));
    try {
        reader.beginArray();
        while (reader.hasNext()) {
            reader.beginObject();
            while (reader.hasNext()) {
                final String name = reader.nextName();
                if (name.equals(INTEGER_CLASS_NAME)) {
                    list.add(reader.nextInt());
                } else if (name.equals(STRING_CLASS_NAME)) {
                    list.add(reader.nextString());
                } else {
                    Log.w(TAG, "Invalid name: " + name);
                    reader.skipValue();
                }
            }
            reader.endObject();
        }
        reader.endArray();
        return list;
    } catch (final IOException e) {
    } finally {
        close(reader);
    }
    return Collections.<Object>emptyList();
}
 
源代码11 项目: android-galaxyzoo   文件: DecisionTree.java
private void readJsonQuestions(final JsonReader reader) throws IOException {
    reader.beginObject();
    while (reader.hasNext()) {
        final String questionId = reader.nextName();

        final Question question = questionsMap.get(questionId);
        if (question != null) {
            readJsonQuestion(reader, question);
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
}
 
List<AlternativePlaceId> readAltIdsArray(JsonReader reader) throws IOException {
    List<AlternativePlaceId> altIds = new ArrayList<>();

    reader.beginArray();
    while (reader.hasNext()) {
        String placeId = null;
        PlaceScope scope = null;

        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.nextName()) {
                case "place_id":
                    placeId = reader.nextString();
                    break;
                case "scope":
                    scope = readScope(reader);
                    break;
                default:
                    reader.skipValue();
                    break;
            }
        }
        reader.endObject();
        altIds.add(new AlternativePlaceId(placeId, scope));
    }
    reader.endArray();
    return altIds;
}
 
源代码13 项目: Wrox-ProfessionalAndroid-4E   文件: MyViewModel.java
private List<Earthquake> parseJson(InputStream in) throws IOException {
  // Create a new Json Reader to parse the input.
  JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));

  try {
    // Create an empty list of earthquakes.
    List<Earthquake> earthquakes = null;

    // The root node of the Earthquake JSON feed is an object that
    // we must parse.
    reader.beginObject();
    while (reader.hasNext()) {
      String name = reader.nextName();

      // We are only interested in one sub-object: the array of
      // earthquakes labeled as features.
      if (name.equals("features")) {
        earthquakes = readEarthquakeArray(reader);
      } else {
        // We will ignore all other root level values and objects.
        reader.skipValue();
      }
    }
    reader.endObject();

    return earthquakes;

  } finally {
    reader.close();
  }
}
 
源代码14 项目: android_maplib   文件: GeoJSONUtil.java
public static boolean readGeoJSONCRS(InputStream is, Context context) throws IOException, NGException {
    JsonReader reader = new JsonReader(new InputStreamReader(is, "UTF-8"));
    boolean isWGS = true;
    reader.beginObject();
    while (reader.hasNext()) {
        String name = reader.nextName();
        if(name.equals(GeoConstants.GEOJSON_CRS)) {
            reader.beginObject();
            while (reader.hasNext()) {
                name = reader.nextName();
                if(name.equals(GeoConstants.GEOJSON_PROPERTIES)) {
                    reader.beginObject();
                    while (reader.hasNext()) {
                        String subname = reader.nextName();
                        if(subname.equals(GeoConstants.GEOJSON_NAME)){
                            String val = reader.nextString();
                            isWGS = checkCRSSupportAndWGS(val, context);
                        }
                        else {
                            reader.skipValue();
                        }
                    }
                    reader.endObject();
                } else {
                    reader.skipValue();
                }
            }
            reader.endObject();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    reader.close();
    return isWGS;
}
 
@NonNull
private static CrashlyticsReport.Session.Application parseApp(@NonNull JsonReader jsonReader)
    throws IOException {
  final CrashlyticsReport.Session.Application.Builder builder =
      CrashlyticsReport.Session.Application.builder();

  jsonReader.beginObject();
  while (jsonReader.hasNext()) {
    String name = jsonReader.nextName();
    switch (name) {
      case "identifier":
        builder.setIdentifier(jsonReader.nextString());
        break;
      case "version":
        builder.setVersion(jsonReader.nextString());
        break;
      case "displayVersion":
        builder.setDisplayVersion(jsonReader.nextString());
        break;
      case "installationUuid":
        builder.setInstallationUuid(jsonReader.nextString());
        break;
      default:
        jsonReader.skipValue();
        break;
    }
  }
  jsonReader.endObject();

  return builder.build();
}
 
@NonNull
private static StickerPack readStickerPack(@NonNull JsonReader reader) throws IOException, IllegalStateException {
    reader.beginObject();
    String identifier = null;
    String name = null;
    String publisher = null;
    String trayImageFile = null;
    String publisherEmail = null;
    String publisherWebsite = null;
    String privacyPolicyWebsite = null;
    String licenseAgreementWebsite = null;
    String imageDataVersion = "";
    boolean avoidCache = false;
    List<Sticker> stickerList = null;
    while (reader.hasNext()) {
        String key = reader.nextName();
        switch (key) {
            case "identifier":
                identifier = reader.nextString();
                break;
            case "name":
                name = reader.nextString();
                break;
            case "publisher":
                publisher = reader.nextString();
                break;
            case "tray_image_file":
                trayImageFile = reader.nextString();
                break;
            case "publisher_email":
                publisherEmail = reader.nextString();
                break;
            case "publisher_website":
                publisherWebsite = reader.nextString();
                break;
            case "privacy_policy_website":
                privacyPolicyWebsite = reader.nextString();
                break;
            case "license_agreement_website":
                licenseAgreementWebsite = reader.nextString();
                break;
            case "stickers":
                stickerList = readStickers(reader);
                break;
            case "image_data_version":
                imageDataVersion = reader.nextString();
                break;
            case "avoid_cache":
                avoidCache = reader.nextBoolean();
                break;
            default:
                reader.skipValue();
        }
    }
    if (TextUtils.isEmpty(identifier)) {
        throw new IllegalStateException("identifier cannot be empty");
    }
    if (TextUtils.isEmpty(name)) {
        throw new IllegalStateException("name cannot be empty");
    }
    if (TextUtils.isEmpty(publisher)) {
        throw new IllegalStateException("publisher cannot be empty");
    }
    if (TextUtils.isEmpty(trayImageFile)) {
        throw new IllegalStateException("tray_image_file cannot be empty");
    }
    if (stickerList == null || stickerList.size() == 0) {
        throw new IllegalStateException("sticker list is empty");
    }
    if (identifier.contains("..") || identifier.contains("/")) {
        throw new IllegalStateException("identifier should not contain .. or / to prevent directory traversal");
    }
    if (TextUtils.isEmpty(imageDataVersion)) {
        throw new IllegalStateException("image_data_version should not be empty");
    }
    reader.endObject();
    final StickerPack stickerPack = new StickerPack(identifier, name, publisher, trayImageFile, publisherEmail, publisherWebsite, privacyPolicyWebsite, licenseAgreementWebsite, imageDataVersion, avoidCache);
    stickerPack.setStickers(stickerList);
    return stickerPack;
}
 
private List<BackgroundLocation> readLocationsArray(JsonReader reader) throws IOException {
    List<BackgroundLocation> locations = new ArrayList<BackgroundLocation>();
    reader.beginArray();
    while (reader.hasNext()) {
        BackgroundLocation l = new BackgroundLocation();
        reader.beginObject();
        while (reader.hasNext()) {
            String name = reader.nextName();
            if (name.equals("id")) {
                l.setLocationId(reader.nextLong());
            } else if (name.equals("time")) {
                l.setTime(reader.nextLong());
            } else if (name.equals("latitude")) {
                l.setLatitude(reader.nextDouble());
            } else if (name.equals("longitude")) {
                l.setLongitude(reader.nextDouble());
            } else if (name.equals("accuracy")) {
                l.setAccuracy((float)reader.nextDouble());
            } else if (name.equals("speed")) {
                l.setSpeed((float)reader.nextDouble());
            } else if (name.equals("bearing")) {
                l.setBearing((float)reader.nextDouble());
            } else if (name.equals("altitude")) {
                l.setAltitude(reader.nextDouble());
            } else if (name.equals("radius")) {
                JsonToken token = reader.peek();
                if (token != JsonToken.NULL) {
                    l.setRadius((float)reader.nextDouble());
                } else {
                    reader.skipValue();
                }
            } else if (name.equals("provider")) {
                l.setProvider(reader.nextString());
            } else if (name.equals("locationProvider")) {
                l.setLocationProvider(reader.nextInt());
            } else {
                reader.skipValue();
            }
        }
        reader.endObject();
        locations.add(l);
    }
    reader.endArray();
    return locations;
}
 
@NonNull
private static CrashlyticsReport.Session parseSession(@NonNull JsonReader jsonReader)
    throws IOException {
  final CrashlyticsReport.Session.Builder builder = CrashlyticsReport.Session.builder();

  jsonReader.beginObject();
  while (jsonReader.hasNext()) {
    String name = jsonReader.nextName();
    switch (name) {
      case "generator":
        builder.setGenerator(jsonReader.nextString());
        break;
      case "identifier":
        builder.setIdentifierFromUtf8Bytes(
            Base64.decode(jsonReader.nextString(), Base64.NO_WRAP));
        break;
      case "startedAt":
        builder.setStartedAt(jsonReader.nextLong());
        break;
      case "endedAt":
        builder.setEndedAt(jsonReader.nextLong());
        break;
      case "crashed":
        builder.setCrashed(jsonReader.nextBoolean());
        break;
      case "user":
        builder.setUser(parseUser(jsonReader));
        break;
      case "app":
        builder.setApp(parseApp(jsonReader));
        break;
      case "os":
        builder.setOs(parseOs(jsonReader));
        break;
      case "device":
        builder.setDevice(parseDevice(jsonReader));
        break;
      case "events":
        builder.setEvents(parseArray(jsonReader, CrashlyticsReportJsonTransform::parseEvent));
        break;
      case "generatorType":
        builder.setGeneratorType(jsonReader.nextInt());
        break;
      default:
        jsonReader.skipValue();
        break;
    }
  }
  jsonReader.endObject();

  return builder.build();
}
 
源代码19 项目: guarda-android-wallets   文件: JSONParser.java
private static void skipJoinSplits(JsonReader reader) throws IOException {
  reader.skipValue();
}
 
源代码20 项目: starcor.xul   文件: XulDataNode.java
public static XulDataNode buildFromJson(Reader reader) {
	JsonReader jsonReader = new JsonReader(reader);
	ArrayList<XulDataNode> parseStack = new ArrayList<XulDataNode>();
	XulDataNode lastDataNode = null;
	try {
		JsonToken peek;
		while ((peek = jsonReader.peek()) != JsonToken.END_DOCUMENT) {
			switch (peek) {
			case NAME:
				String nameStr = jsonReader.nextName();
				if (!jsonReader.hasNext()) {
					continue;
				}
				switch ((peek = jsonReader.peek())) {
				case BEGIN_OBJECT:
				case BEGIN_ARRAY:
					if (peek == JsonToken.BEGIN_OBJECT) {
						jsonReader.beginObject();
					} else {
						jsonReader.beginArray();
					}
					lastDataNode = lastDataNode.appendChild(nameStr);
					parseStack.add(lastDataNode);
					break;
				case STRING:
				case NUMBER:
					lastDataNode.setAttribute(nameStr, jsonReader.nextString());
					break;
				case BOOLEAN:
					lastDataNode.setAttribute(nameStr, String.valueOf(jsonReader.nextBoolean()));
					break;
				case NULL:
					jsonReader.nextNull();
					lastDataNode.setAttribute(nameStr, null);
					break;
				}
				break;
			case BEGIN_OBJECT:
			case BEGIN_ARRAY:
				if (peek == JsonToken.BEGIN_OBJECT) {
					jsonReader.beginObject();
				} else {
					jsonReader.beginArray();
				}
				if (lastDataNode != null) {
					lastDataNode = lastDataNode.appendChild(String.valueOf(lastDataNode.size()));
				} else {
					lastDataNode = XulDataNode.obtainDataNode(null);
				}
				parseStack.add(lastDataNode);
				break;
			case END_OBJECT:
			case END_ARRAY:
				if (peek == JsonToken.END_OBJECT) {
					jsonReader.endObject();
				} else {
					jsonReader.endArray();
				}
				parseStack.remove(parseStack.size() - 1);
				if (!parseStack.isEmpty()) {
					lastDataNode = parseStack.get(parseStack.size() - 1);
				}
				break;
			default:
				// array
				switch (peek) {
				case STRING:
				case NUMBER:
					lastDataNode.appendChild(String.valueOf(lastDataNode.size()), jsonReader.nextString());
					break;
				case BOOLEAN:
					lastDataNode.appendChild(String.valueOf(lastDataNode.size()), String.valueOf(jsonReader.nextBoolean()));
					break;
				case NULL:
					jsonReader.nextNull();
					lastDataNode.appendChild(String.valueOf(lastDataNode.size()));
					break;
				default:
					jsonReader.skipValue();
					break;
				}
				break;
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
	return lastDataNode;
}