title: How do you parse JSON with a colon in the name? Android/Java
body: <p>For example: <code>{ "primary:title":"Little Red Riding Hood"}</code></p>
  
  <p>My Parser in Java (Android) is always getting stuck because of the colon between primary and title. I can parse anything else with ease, I just need help in this.</p>
  
  <pre><code>public class MainActivity extends Activity {
      /** Called when the activity is first created. */
  
      TextView txtViewParsedValue;
  
      private JSONObject jsonObject;
      private JSONArray jsonArray;
  
      String [] titles, links, mediaDescriptions, mediaCredits, descriptions, dcCreators, pubDates, categories;
      String [] permalinks, texts;            // guid
      String [] rels, hrefs;
      String [] urls, media, heights, widths; // media:content
  
      String strParsedValue = "";
  
      private String strJSONValue;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          strJSONValue = readRawTextFile(this, R.raw.jsonextract);
  
          txtViewParsedValue = (TextView) findViewById(R.id.text_view_1);
  
          try {
              parseJSON();
  
          } catch (JSONException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
  
      public void parseJSON() throws JSONException
      {
          txtViewParsedValue.setText("Parse 1");
  
          jsonObject = new JSONObject(strJSONValue);
          jsonArray = jsonObject.getJSONArray("item");
  
          titles = new String[jsonArray.length()];
          links = new String[jsonArray.length()];
          permalinks = new String[jsonArray.length()];
          texts = new String[jsonArray.length()];
          mediaDescriptions = new String[jsonArray.length()];
          mediaCredits = new String[jsonArray.length()];
          descriptions = new String[jsonArray.length()];
          dcCreators = new String[jsonArray.length()];
          pubDates = new String[jsonArray.length()];
          categories = new String[jsonArray.length()];
  
          txtViewParsedValue.setText("Parse 2");
  
          for (int i=0; i&lt;jsonArray.length(); i++)
          {
              JSONObject object = jsonArray.getJSONObject(i);
  
              titles[i] = object.getString("title");
              links[i] = object.getString("link");
  
              JSONObject guidObj = object.getJSONObject("guid");
              permalinks[i] = guidObj.getString("isPermaLink");
              texts[i] = guidObj.getString("text");
              //mediaDescriptions[i] = object.getString("media:description");
              //mediaCredits[i] = object.getString("media:credit");
  
                  // *** THE PARSER FAILS IF THE COMMENTED LINES ARE IMPLEMENTED BECAUSE
                  // OF THE : IN BETWEEN THE NAMES ***
  
              descriptions[i] = object.getString("description");
              //dcCreators[i] = object.getString("dc:creator");
              pubDates[i] = object.getString("pubDate");
              categories[i] = object.getString("category");   
          }
  
  
  
          for (int i=0; i&lt;jsonArray.length(); i++)
          {
              strParsedValue += "\nTitle: " + titles[i];
              strParsedValue += "\nLink: " + links[i];
              strParsedValue += "\nPermalink: " + permalinks[i];
              strParsedValue += "\nText: " + texts[i];
              strParsedValue += "\nMedia Description: " + mediaDescriptions[i];
              strParsedValue += "\nMedia Credit: " + mediaCredits[i];
              strParsedValue += "\nDescription: " + descriptions[i];
              strParsedValue += "\nDC Creator: " + dcCreators[i];
              strParsedValue += "\nPublication Date: " + pubDates[i];
              strParsedValue += "\nCategory: " + categories[i];
              strParsedValue += "\n";
          }
  
  
          txtViewParsedValue.setText(strParsedValue);
      }
  
      public static String readRawTextFile(Context ctx, int resId)
      {
           InputStream inputStream = ctx.getResources().openRawResource(resId);
  
              InputStreamReader inputreader = new InputStreamReader(inputStream);
              BufferedReader buffreader = new BufferedReader(inputreader);
               String line;
               StringBuilder text = new StringBuilder();
  
               try {
                 while (( line = buffreader.readLine()) != null) {
                     text.append(line);
                     //text.append('\n');
                   }
             } catch (IOException e) {
                 return null;
             }
               return text.toString();
      }
  </code></pre>