项目:lottie-android
文件:ColorParser.java
@Override public Integer parse(JsonReader reader,float scale) throws IOException {
boolean isArray = reader.peek() == JsonToken.BEGIN_ARRAY;
if (isArray) {
reader.beginArray();
}
double r = reader.nextDouble();
double g = reader.nextDouble();
double b = reader.nextDouble();
double a = reader.nextDouble();
if (isArray) {
reader.endarray();
}
if (r <= 1 && g <= 1 && b <= 1 && a <= 1) {
r *= 255;
g *= 255;
b *= 255;
a *= 255;
}
return Color.argb((int) a,(int) r,(int) g,(int) b);
}
项目:lottie-android
文件:PointFParser.java
@Override public PointF parse(JsonReader reader,float scale) throws IOException {
JsonToken token = reader.peek();
if (token == JsonToken.BEGIN_ARRAY) {
return JsonUtils.jsonToPoint(reader,scale);
} else if (token == JsonToken.BEGIN_OBJECT) {
return JsonUtils.jsonToPoint(reader,scale);
} else if (token == JsonToken.NUMBER) {
// This is the case where the static value for a property is an array of numbers.
// We begin the array to see if we have an array of keyframes but it's just an array
// of static numbers instead.
PointF point = new PointF((float) reader.nextDouble() * scale,(float) reader.nextDouble() * scale);
while (reader.hasNext()) {
reader.skipValue();
}
return point;
} else {
throw new IllegalArgumentException("Cannot convert json to point. Next token is " + token);
}
}
项目:lottie-android
文件:JsonUtils.java
static float valueFromObject(JsonReader reader) throws IOException {
JsonToken token = reader.peek();
switch (token) {
case NUMBER:
return (float) reader.nextDouble();
case BEGIN_ARRAY:
reader.beginArray();
float val = (float) reader.nextDouble();
while (reader.hasNext()) {
reader.skipValue();
}
reader.endarray();
return val;
default:
throw new IllegalArgumentException("UnkNown value for token of type " + token);
}
}
项目:segment-android
文件:JsonUtils.java
/** Reads the next value in the {@link JsonReader}. */
private static Object readValue(JsonReader reader) throws IOException {
JsonToken token = reader.peek();
switch (token) {
case BEGIN_OBJECT:
return readerToMap(reader);
case BEGIN_ARRAY:
return readerToList(reader);
case BOOLEAN:
return reader.nextBoolean();
case NULL:
reader.nextNull(); // consume the null token
return null;
case NUMBER:
return reader.nextDouble();
case STRING:
return reader.nextString();
default:
throw new IllegalStateException("Invalid token " + token);
}
}
项目:DietDiaryApp
文件:RestoreDialog.java
@Override
protected Event readNext() throws IOException {
if (!reader.hasNext()) {
return null;
}
if (reader.peek() == JsonToken.END_ARRAY) {
return null;
}
try {
return parseRecord();
} catch (IOException e) {
throw new IOException(getExceptionText(R.string.restore_json_corrupted),e);
}
}
项目:Android-Orma
文件:BuiltInSerializers.java
/**
* A generic deserializer for string collections.
*
* @param serialized JSON representation of a string collection.
* @param collectionClass Concrete,instantiatable collection class,e.g. {@code ArrayList.class}.
* @param <C> A concrete collection class,e.g. {@code ArrayList<String>}.
* @return A collection instance retrieved from {@code serialized}.
*/
@NonNull
public static <C extends Collection<String>> C deserializeStringCollection(@NonNull String serialized,@NonNull Class<?> collectionClass) {
C collection = createCollection(collectionClass);
StringReader reader = new StringReader(serialized);
JsonReader jsonReader = new JsonReader(reader);
try {
jsonReader.beginArray();
while (jsonReader.hasNext()) {
if (jsonReader.peek() == JsonToken.NULL) {
jsonReader.nextNull();
collection.add(null);
} else {
collection.add(jsonReader.nextString());
}
}
jsonReader.endarray();
jsonReader.close();
return collection;
} catch (IOException e) {
return collection;
}
}
项目:dailyJournal
文件:JsonConverterStream.java
private void insertJournal(JsonReader jsonReader,Journal journal) throws IOException {
jsonReader.beginobject();
while (jsonReader.hasNext()) {
String key = jsonReader.nextName();
if(jsonReader.peek() == JsonToken.NULL) continue;
if (key.equals(KEY_ID)) journal.setId(jsonReader.nextLong());
else if (key.equals(KEY_DATE)) journal.setDate(jsonReader.nextLong());
else if (key.equals(KEY_NOTE)) journal.setNote(jsonReader.nextString());
else if (key.equals(KEY_AMOUNT)) journal.setAmount(jsonReader.nextDouble());
else if (key.equals(KEY_CREATED_DATE)) journal.setCreatedDate(jsonReader.nextLong());
else if (key.equals(KEY_TYPE)) journal.setType(Journal.Type.valueOf(jsonReader.nextString()));
else if (key.equals(KEY_ATTACHMENTS)) {
//this logic assumes that key_attachments comes at the end
long newId = mServices.addJournal(journal);
insertAttachmentsIntoDB(jsonReader,newId);
}
else jsonReader.skipValue();
}
jsonReader.endobject();
}
项目:dailyJournal
文件:JsonConverterStream.java
private void insertAttachment(JsonReader jsonReader,Attachment attachment) throws IOException {
if(jsonReader.peek() == JsonToken.NAME) {
jsonReader.beginobject();
while (jsonReader.hasNext()) {
String key = jsonReader.nextName();
if (jsonReader.peek() == JsonToken.NULL) continue;
if (key.equals(KEY_ID)) attachment.setId(jsonReader.nextLong());
else if (key.equals(KEY_PATH)) attachment.setPath(jsonReader.nextString());
else jsonReader.skipValue();
}
mServices.addAttachment(attachment);
jsonReader.endobject();
}else{
//for old json format
while (jsonReader.hasNext()) {
if (jsonReader.peek() == JsonToken.NULL) continue;
else attachment.setPath(jsonReader.nextString());
}
mServices.addAttachment(attachment);
}
}
/***
* This method called in the background,here
* need to parse given {@code json}
*
* @param reader Widget configuration
*/
protected void inflate(ConfigurationWidget widget,JsonReader reader) throws IOException {
Bundle options = new Bundle();
Bundle configs = widget.getConfigurations();
JsonToken token = reader.peek();
if(token == JsonToken.BEGIN_OBJECT){
appendViewInLayout(createView(this,configs,options,reader));
}else if (token == JsonToken.BEGIN_ARRAY){
reader.beginArray();
while(reader.peek() != JsonToken.END_ARRAY){
appendViewInLayout(createView(this,reader));
options.clear(); // recycle configurations
}
reader.endarray();
}else{
throw new RuntimeException("Unsupported token exception: " + reader.toString());
}
options.clear();
}
private static boolean handleSystemOptions(Bundle options,String key,JsonReader reader){
try {
if (key.equals("entities")) {
reader.beginobject();
ArrayList<String> entities = new ArrayList<>();
while(reader.peek() != JsonToken.END_OBJECT){
reader.skipValue(); //skip name
entities.add(reader.nextString());
}
reader.endobject();
options.putStringArrayList(key,entities);
return true;
}
}catch (IOException e){
e.printstacktrace();
}
return false;
}
/**
* Parse the next value as an object,but do not attempt to convert it or any children to a
* kNown type. The returned object will be a {@link JSONObject} and all children will be
* JSONObjects,JSONArrays,and primitives.
*
* @param reader The JsonReader to use. Calls to {@link JsonReader#beginobject()} and {@link
* JsonReader#endobject()} will be taken care of by this method.
* @param key The key corresponding to the current value. This is used to make more useful error
* messages.
*/
public static JSONObject parseAsJsonObject(JsonReader reader,String key) throws IOException {
if (handleNull(reader)) {
return null;
}
assertType(reader,key,JsonToken.BEGIN_OBJECT);
JSONObject result = new JSONObject();
reader.beginobject();
while (reader.hasNext()) {
try {
result.put(reader.nextName(),parseNextValue(reader,false));
} catch (JSONException e) {
throw new RuntimeException("This should be impossible.",e);
}
}
reader.endobject();
return result;
}
项目:android_maplib
文件:NGWUtil.java
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private static void readNGWFeatureAttachments(Feature feature,JsonReader reader)
throws IOException
{
//add extensions
reader.beginobject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("attachment") && reader.peek() != JsonToken.NULL) {
reader.beginArray();
while (reader.hasNext()) {
readNGWFeatureAttachment(feature,reader);
}
reader.endarray();
} else {
reader.skipValue();
}
}
reader.endobject();
}
项目:cartographer
文件:Cartographer.java
/** Reads the next value in the {@link JsonReader}. */
private static Object readValue(JsonReader reader) throws IOException {
JsonToken token = reader.peek();
switch (token) {
case BEGIN_OBJECT:
return readerToMap(reader);
case BEGIN_ARRAY:
return readerToList(reader);
case BOOLEAN:
return reader.nextBoolean();
case NULL:
reader.nextNull(); // consume the null token
return null;
case NUMBER:
return reader.nextDouble();
case STRING:
return reader.nextString();
default:
throw new IllegalStateException("Invalid token " + token);
}
}
项目:analytics-android
文件:Cartographer.java
/** Reads the next value in the {@link JsonReader}. */
private static Object readValue(JsonReader reader) throws IOException {
JsonToken token = reader.peek();
switch (token) {
case BEGIN_OBJECT:
return readerToMap(reader);
case BEGIN_ARRAY:
return readerToList(reader);
case BOOLEAN:
return reader.nextBoolean();
case NULL:
reader.nextNull(); // consume the null token
return null;
case NUMBER:
return reader.nextDouble();
case STRING:
return reader.nextString();
default:
throw new IllegalStateException("Invalid token " + token);
}
}
项目:GitHub
文件:SimpleRealmProxy.java
@SuppressWarnings("cast")
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static some.test.Simple createUsingJsonStream(Realm realm,JsonReader reader)
throws IOException {
final some.test.Simple obj = new some.test.Simple();
final SimpleRealmProxyInterface objProxy = (SimpleRealmProxyInterface) obj;
reader.beginobject();
while (reader.hasNext()) {
String name = reader.nextName();
if (false) {
} else if (name.equals("name")) {
if (reader.peek() != JsonToken.NULL) {
objProxy.realmSet$name((String) reader.nextString());
} else {
reader.skipValue();
objProxy.realmSet$name(null);
}
} else if (name.equals("age")) {
if (reader.peek() != JsonToken.NULL) {
objProxy.realmSet$age((int) reader.nextInt());
} else {
reader.skipValue();
throw new IllegalArgumentException("Trying to set non-nullable field 'age' to null.");
}
} else {
reader.skipValue();
}
}
reader.endobject();
return realm.copyToRealm(obj);
}
项目:Sprog-App
文件:PoemParser.java
private ParentComment readParentComment() throws IOException {
String content = null;
String author = null;
String link = null;
reader.beginobject();
while (reader.hasNext()) {
String name = reader.nextName();
JsonToken check = reader.peek();
if (check == JsonToken.NULL) {
reader.skipValue();
continue;
}
switch (name) {
case "author":
author = formatUsername(reader.nextString());
break;
case "orig_body":
content = reader.nextString().replace("^","");
break;
case "link":
link = reader.nextString();
break;
default:
reader.skipValue();
break;
}
}
reader.endobject();
return new ParentComment(content,author,link);
}
项目:Blackboard
文件:AnnouncementsScraper.java
public AnnouncementsScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getHtmlContent("announcementList",new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
JsonReader reader = new JsonReader(new StringReader(s));
reader.setLenient(true);
try {
if (reader.peek() != JsonToken.NULL) {
if (reader.peek() == JsonToken.STRING)
onComplete(reader.nextString());
}
} catch (Exception ignored) {
}
try {
reader.close();
} catch (IOException ignored) {
}
if (!isComplete()) {
onError(false);
handler.postDelayed(runnable,1000);
}
}
});
}
}
};
}
项目:Blackboard
文件:CourseMenuScraper.java
public CourseMenuScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getHtmlContent("courseMenuPalette_contents",1000);
}
}
});
}
}
};
}
项目:Blackboard
文件:UsernameScraper.java
public UsernameScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getAttribute("global-nav-link","innerText",new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
JsonReader reader = new JsonReader(new StringReader(s));
reader.setLenient(true);
try {
if (reader.peek() != JsonToken.NULL) {
if (reader.peek() == JsonToken.STRING)
onComplete(reader.nextString().replace("[0-9]",""));
}
} catch (Exception ignored) {
}
try {
reader.close();
} catch (IOException ignored) {
}
if (!isComplete()) {
onError(false);
handler.postDelayed(runnable,1000);
}
}
});
}
}
};
}
项目:Blackboard
文件:ContentScraper.java
public ContentScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getHtmlContent("content_listContainer",1000);
}
}
});
}
}
};
}
@Override
public String readString() throws IOException {
mReader.nextName();
if (mReader.peek() == JsonToken.NULL) {
mReader.nextNull();
return null;
}
return mReader.nextString();
}
private void readImageUri(JsonReader reader) throws IOException {
reader.nextName();
if (reader.peek() == JsonToken.NULL) {
reader.nextNull();
mImageUri = null;
} else
mImageUri = reader.nextString();
}
podcastLayoutContent parse(Reader reader,URI uri) throws IOException {
JsonReader parser = new JsonReader(reader);
long id = 0;
String name = null;
long nextPage = 0;
Records records = null;
parser.beginobject();
while (parser.hasNext()) {
String prop = parser.nextName();
if (ID_PROPERTY.equals(prop)) {
id = parser.nextLong();
} else if (TITLE_PROPERTY.equals(prop)) {
name = StringUtils.nonEmpty(parser.nextString());
} else if (NEXT_PAGE_PROPERTY.equals(prop)) {
if (parser.peek() == JsonToken.NUMBER) {
nextPage = parser.nextLong();
} else {
parser.skipValue();
}
} else if (RECORDS_PROPERTY.equals(prop)) {
records = parseRecords(parser,uri);
} else {
parser.skipValue();
}
}
parser.endobject();
podcast podcast = null;
if (id != 0 && name != null) {
podcast = new podcast(id,name);
}
return new podcastLayoutContent(podcast,records == null ? new Records() : records,nextPage);
}
项目:firefox-tv
文件:BlocklistProcessor.java
private static void extractSite(final JsonReader reader,final UrlListCallback callback) throws IOException {
reader.beginobject();
final String siteOwner = reader.nextName();
{
reader.beginobject();
while (reader.hasNext()) {
// We can get the site name using reader.nextName() here:
reader.skipValue();
JsonToken nextToken = reader.peek();
if (nextToken.name().equals("STRING")) {
// Sometimes there's a "dnt" entry,with unspecified purpose.
reader.skipValue();
} else {
reader.beginArray();
while (reader.hasNext()) {
final String blockURL = reader.nextString();
callback.put(blockURL,siteOwner);
}
reader.endarray();
}
}
reader.endobject();
}
reader.endobject();
}
项目:aos-MediaLib
文件:JSONStreamParser.java
protected static boolean hasNextSkipNull(JsonReader reader) throws IOException {
while (reader.hasNext()) {
if (reader.peek() == JsonToken.NULL) {
reader.skipValue();
} else {
return true;
}
}
return false;
}
项目:aos-MediaLib
文件:JSONStreamParser.java
protected static final String getNextNotNullName(JsonReader reader) throws IOException {
while (reader.hasNext()) {
String name = reader.nextName();
JsonToken jsonToken = reader.peek();
if (jsonToken != JsonToken.NULL) {
return name;
}
reader.skipValue();
}
return null;
}
项目:samba-documents-provider
文件:ShareManager.java
private static ShareTuple decodeTuple(JsonReader reader) throws IOException {
if (reader.peek() == JsonToken.NULL) {
reader.nextNull();
return ShareTuple.EMPTY_TUPLE;
}
String workgroup = null;
String username = null;
String password = null;
boolean mounted = true;
reader.beginobject();
while (reader.hasNext()) {
String name = reader.nextName();
switch (name) {
case WORKGROUP_KEY:
workgroup = reader.nextString();
break;
case USERNAME_KEY:
username = reader.nextString();
break;
case PASSWORD_KEY:
password = reader.nextString();
break;
case MOUNT_KEY:
mounted = reader.nextBoolean();
default:
Log.w(TAG,"Ignoring unkNown key " + name);
}
}
reader.endobject();
return new ShareTuple(workgroup,username,password,mounted);
}
项目:focus-android
文件:BlocklistProcessor.java
项目:lottie-android
文件:KeyframesParser.java
static <T> List<Keyframe<T>> parse(JsonReader reader,LottieComposition composition,float scale,ValueParser<T> valueParser)
throws IOException {
List<Keyframe<T>> keyframes = new ArrayList<>();
if (reader.peek() == JsonToken.STRING) {
composition.addWarning("Lottie doesn't support expressions.");
return keyframes;
}
reader.beginobject();
while (reader.hasNext()) {
switch (reader.nextName()) {
case "k":
if (reader.peek() == JsonToken.BEGIN_ARRAY) {
reader.beginArray();
if (reader.peek() == JsonToken.NUMBER) {
// For properties in which the static value is an array of numbers.
keyframes.add(
KeyframeParser.parse(reader,composition,scale,valueParser,false));
} else {
while (reader.hasNext()) {
keyframes.add(KeyframeParser.parse(reader,true));
}
}
reader.endarray();
} else {
keyframes.add(KeyframeParser.parse(reader,false));
}
break;
default:
reader.skipValue();
}
}
reader.endobject();
setEndFrames(keyframes);
return keyframes;
}
项目:lottie-android
文件:ScaleXYParser.java
@Override public ScaleXY parse(JsonReader reader,float scale) throws IOException {
boolean isArray = reader.peek() == JsonToken.BEGIN_ARRAY;
if (isArray) {
reader.beginArray();
}
float sx = (float) reader.nextDouble();
float sy = (float) reader.nextDouble();
while (reader.hasNext()) {
reader.skipValue();
}
if (isArray) {
reader.endarray();
}
return new ScaleXY(sx / 100f * scale,sy / 100f * scale);
}
项目:lottie-android
文件:PathKeyframeParser.java
static PathKeyframe parse(
JsonReader reader,LottieComposition composition) throws IOException {
boolean animated = reader.peek() == JsonToken.BEGIN_OBJECT;
Keyframe<PointF> keyframe = KeyframeParser.parse(
reader,Utils.dpScale(),PathParser.INSTANCE,animated);
return new PathKeyframe(composition,keyframe);
}
项目:lottie-android
文件:JsonUtils.java
static List<PointF> jsonToPoints(JsonReader reader,float scale) throws IOException {
List<PointF> points = new ArrayList<>();
reader.beginArray();
while (reader.peek() == JsonToken.BEGIN_ARRAY) {
reader.beginArray();
points.add(jsonToPoint(reader,scale));
reader.endarray();
}
reader.endarray();
return points;
}
项目:lottie-android
文件:JsonUtils.java
private static PointF jsonArrayToPoint(JsonReader reader,float scale) throws IOException {
float x;
float y;
reader.beginArray();
x = (float) reader.nextDouble();
y = (float) reader.nextDouble();
while (reader.peek() != JsonToken.END_ARRAY) {
reader.skipValue();
}
reader.endarray();
return new PointF(x * scale,y * scale);
}
项目:lottie-android
文件:AnimatablePathValueParser.java
public static AnimatablePathValue parse(
JsonReader reader,LottieComposition composition) throws IOException {
List<Keyframe<PointF>> keyframes = new ArrayList<>();
if (reader.peek() == JsonToken.BEGIN_ARRAY) {
reader.beginArray();
while (reader.hasNext()) {
keyframes.add(PathKeyframeParser.parse(reader,composition));
}
reader.endarray();
KeyframesParser.setEndFrames(keyframes);
} else {
keyframes.add(new Keyframe<>(JsonUtils.jsonToPoint(reader,Utils.dpScale())));
}
return new AnimatablePathValue(keyframes);
}
项目:dailyJournal
文件:JsonConverterStream.java
/**
* Inserts a Party and it's Journals and attachments into the database
* @param jsonReader
* @param newParty
* @throws IOException
*/
private void insertParty(JsonReader jsonReader,Party newParty) throws IOException {
//consume open curly braces {
jsonReader.beginobject();
//loop through keys/names which represents variable
while (jsonReader.hasNext()) {
String key = jsonReader.nextName();
//if the value is null,continue to next key
if (jsonReader.peek() == JsonToken.NULL) continue;
if (key.equals(KEY_ID)) newParty.setId(jsonReader.nextLong());
else if (key.equals(KEY_TYPE)) newParty.setType(Party.Type.valueOf(jsonReader.nextString()));
else if (key.equals(KEY_NAME)) newParty.setName(jsonReader.nextString());
else if (key.equals(KEY_PHONE)) newParty.setPhone(jsonReader.nextString());
//Debit and Credit balance will be calculated as Journals are added
//else if (key.equals(KEY_DEBIT)) newParty.setDebitTotal(jsonReader.nextDouble());
//else if (key.equals(KEY_CREDIT)) newParty.setCreditTotal(jsonReader.nextDouble());
else if (key.equals(KEY_PICTURE)) newParty.setPicturePath(jsonReader.nextString());
else if (key.equals(KEY_JOURNALS)) {
//this logic assumes that KEY_JOURNALS comes at the end
long id = mServices.addParty(newParty);
Log.d(TAG,newParty.getName() + " created");
insertJournalsIntoDb(jsonReader,id);
} else jsonReader.skipValue(); //skip unkNown key
}
//consume close curly braces }
jsonReader.endobject();
}
项目:Green
文件:JsonMenuInflater.java
public static Bundle asMap(ConfigCard widget,Bundle options,JsonReader reader){
try {
reader.beginobject();
while(reader.peek() != JsonToken.END_OBJECT){
final String key = reader.nextName();
if(widget.handleOptions(options,reader)){
continue;
}
final JsonToken token = reader.peek();
if(token == JsonToken.STRING){
options.putString(key,reader.nextString());
}else if(token == JsonToken.BOOLEAN){
options.putBoolean(key,reader.nextBoolean());
}else if(token == JsonToken.NUMBER){
options.putInt(key,reader.nextInt());
}else if(!handleSystemOptions(options,reader)){
reader.skipValue();
}
}
reader.endobject();
} catch (IOException e) {
Log.w(TAG,"on >>> " + reader.toString());
e.printstacktrace();
}
return options;
}
项目:Green
文件:JsonMenuInflaterTest.java
@Test
public void testJson2BundleConverter(){
final Activity context = mActivityRule.getActivity();
final ConfigCard widget = new ConfigCard(context);
Bundle options = null;
try {
final JsonReader reader = new JsonReader(new
StringReader(getRaw("config_file_sample_base.json")));
//checking only first json object
reader.beginobject();
reader.skipValue();
options = ConfigCard.asMap(widget,new Bundle(),reader);
JsonMenuInflater.skipRemainedValues(reader,JsonToken.END_OBJECT);
reader.close();
}catch (IOException exception){
exception.printstacktrace();
}
assertNotNull(options);
assertthat(options)
.isNotEmpty()
.hasSize(3)
.hasKey("key")
.hasKey("type")
.hasKey("entities");
assertEquals("productFlavor",options.getString("key"));
assertEquals("spinner",options.getString("type"));
ArrayList<String> expected = new ArrayList<>();
expected.add("ProductionMode");
expected.add("DeveloperMode");
assertEquals(expected,options.getStringArrayList("entities"));
}
项目:Green
文件:JsonMenuInflaterTest.java
@Test
public void testJsonReader() throws IOException{
final Activity context = mActivityRule.getActivity();
final JsonReader reader = new JsonReader(new StringReader(
getRaw("config_file_sample_base.json")));
reader.beginobject();
JsonMenuInflater.skipRemainedValues(reader,JsonToken.END_OBJECT);
assertEquals(true,reader.peek() == JsonToken.END_DOCUMENT);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。