When you say you are using the old SDK I assume you mean the APC Core SDK (i.e. pre-data stream)??
If so, I don't think you can pass data as JSON... and if you are using Data Steams, that JSON needs to be in the XDM schema and use the Adobe Experience Platform Data Stream mapping.
If you are trying to use pre-stream data, then you must set context variables in your implementation, then they will show up in your processing rules for mapping.
In the "old" way, you need to do stuff like:
HashMap cdata = new HashMap<String, Object>();
cdata.put("UserID", "122121212121212121");
cdata.put("UserGender", "male");
cdata.put("UserAge", "18");
Analytics.trackState("Homepage", cdata);
// OR
HashMap cdata = new HashMap<String, Object>();
cdata.put("user.id", "122121212121212121");
cdata.put("user.gender", "male");
cdata.put("user.age", "18");
Analytics.trackState("Homepage", cdata);
Where user.id is a context variable...
I like to have a specific overall context namespace that ALL my custom context variables can be found easily, I sometimes use a simplified org name, or a site domain designation....
You also need to use the proper trackState (page views - s.t() equivalent) and trackAction (clicks / actions - s.tl() equivalent) in order to create a proper tracking profile.