Die folgende JSON FehlerAndroid kann nicht json analysieren, obwohl es gültig ist
System.err: org.json.JSONException: Expected ':' after Incline at character 31
gibt.
Ich habe die JSON von jsonlint
& jsonformatter.curiousconcept
validiert und beide gibt einen gültigen json
{
"day": [{
"monday": {
"Chest": {
"Flat Bench press": {
"Sets": "3",
"Reps": "12"
},
"Incline Bench press": {
"Sets": "3",
"Reps": "12"
},
"Flat Dumbell press": {
"Sets": "3",
"Reps": "12"
},
"Flat Dumbell Fly": {
"Sets": "3",
"Reps": "12"
},
"Pull Over": {
"Sets": "3",
"Reps": "12"
},
"Machine Chest Press": {
"Sets": "3",
"Reps": "12"
}
}
}
}, {
"tuesday": {
"Shoulders": {
"UpRight Row": {
"Sets": "3",
"Reps": "12"
},
"Front Press": {
"Sets": "3",
"Reps": "12"
},
"Back OverHead Press": {
"Sets": "3",
"Reps": "12"
},
"Dumbell press": {
"Sets": "3",
"Reps": "12"
},
"Single Hand Side Raise": {
"Sets": "3",
"Reps": "12"
},
"Delt Raise": {
"Sets": "3",
"Reps": "12"
},
"Rear Delt Raise": {
"Sets": "3",
"Reps": "12"
},
"Shrugs": {
"Sets": "3",
"Reps": "12"
}
}
}
}, {
"wednesday": {
"Back": {
"WideGrip UpRight Row": {
"Sets": "3",
"Reps": "12"
},
"Front Pull Ups": {
"Sets": "3",
"Reps": "12"
},
"Front Pull Down": {
"Sets": "3",
"Reps": "12"
},
"AD Side Table Rowing": {
"Sets": "3",
"Reps": "12"
},
"Ground Pulley": {
"Sets": "3",
"Reps": "12"
},
"AD Rowing": {
"Sets": "3",
"Reps": "12"
},
"Reverse Pulley": {
"Sets": "3",
"Reps": "12"
}
}
}
}, {
"thursday": {
"Triceps": {
"Short Grip Bench Press": {
"Sets": "3",
"Reps": "12"
},
"Lying Triceps": {
"Sets": "3",
"Reps": "12"
},
"French Press": {
"Sets": "3",
"Reps": "12"
},
"Barbell Overhead": {
"Sets": "3",
"Reps": "12"
},
"Pulley PushDown": {
"Sets": "3",
"Reps": "12"
},
"Back PushUps": {
"Sets": "3",
"Reps": "12"
}
}
}
}, {
"friday": {
"Biceps": {
"Barbell Curl": {
"Sets": "3",
"Reps": "12"
},
"AD Dumbell Curl": {
"Sets": "3",
"Reps": "12"
},
"Preacher Curl": {
"Sets": "3",
"Reps": "12"
},
"Machine Curl": {
"Sets": "3",
"Reps": "12"
},
"Hammer Curl": {
"Sets": "3",
"Reps": "12"
}
}
}
}, {
"saturday": {
"Legs": {
"Squats": {
"Sets": "2",
"Reps": "50"
},
"Barbell Squats": {
"Sets": "4",
"Reps": "15"
},
"Leg Press": {
"Sets": "3",
"Reps": "12"
},
"Leg Curl": {
"Sets": "3",
"Reps": "12"
},
"Calf Raise": {
"Sets": "3",
"Reps": "12"
}
}
}
}]
}
Java-Code zur Folge:
Ich Feuerbasis Mit der json als Datenbank zu speichern, und ich dann und als String Abrufen und Umwandeln in JsonObject
public class StartActivity extends AppCompatActivity{
Toolbar ToolbarStart;
private DrawerLayout mDrawerLayout;
ActionBarDrawerToggle mDrawerToggle;
NavigationView mNavigationView;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabase = database.getReference();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
initilize();
initilizeNavigationDrawer();
getSupportFragmentManager().beginTransaction().replace(R.id.startContainer,new GymChartFragment()).commit();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
try {
JSONObject obj = new JSONObject(dataSnapshot.getValue()+"");
JSONArray arr = obj.getJSONArray("day");
Log.d("Size",arr.length()+"");
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void initilizeNavigationDrawer() {
mDrawerLayout = (DrawerLayout)findViewById(R.id.startDrawerLayout);
mNavigationView = (NavigationView)findViewById(R.id.mainNaviagtionView);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, ToolbarStart, R.string.drawerOpen, R.string.drawerClose) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.menuDrawerGymChart:
mDrawerLayout.closeDrawers();
break;
case R.id.menuDrawerDietChart:
mDrawerLayout.closeDrawers();
break;
case R.id.menuDrawerSettings:
mDrawerLayout.closeDrawers();
startActivity(new Intent(StartActivity.this,Prefrences.class));
break;
}
return false;
}
});
}
private void initilize() {
ToolbarStart = (Toolbar) findViewById(R.id.ToolbarStart);
setSupportActionBar(ToolbarStart);
}
}
können Sie posten Sie Ihre Java-Code –
bitte einfügen Parsen Sie Code –
refer diesen Link http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ – Mohit