title: How to update description in Jira through rest api with json
body: <p>Below is the JSON data which contains rich text/wiki text. I want to pass this data to to one of the issues in Jira  through REST API. Here Java is the technology, I am using. </p>
  
  <pre><code>{"update":{"summary": [{"set": "CRF-397 – For Virgin Mobile, alert must be sent via email when Tier Mismatch exception is encountered."}]},"fields":{"description":{"set":"*Clients Impacted** Virgin Mobile *Background Information*&lt;br&gt;All UK schemes are experiencing at different levels some issues of:* Customers being billed on the wrong premium* Excess Fees paid at point of claim do not correspond to what has been communicated to the customer at the point of sale.* Welcome packs not being issued due to a mismatch *CRF Scope*&lt;br&gt;The scope of this project consists of identifying whenever a new device is communicated to Asurion by a client system and ensuring the data in each of those instances is validated to confirm that the device premium and excess fees are correctly aligned.*User Story Scope*&lt;br&gt;While doing enrollment if any record goes into exception due to Tier is match we have to send consolidated list of such records via email so that Asurion Team can communicate with Virgin Mobile to resolve the Tier Mismatch issues.*Requirement** An email alert must be sent when Tier Mismatch exception is encountered.* Flag based development must be done for triggering an email.* Email must be sent to Client Service, SCM and BI teams* Recipient email IDs must be configurable.* Exception list must contain below records:-      * The list of devices for which there was an exception * The Feature Code sent by Virgin Mobile * The feature code configured in Client Convention for the given device*"}}}
  </code></pre>
  
  <p>Above JSON I am storing in <code>jiraUpdateFromBuilder</code>.</p>
  
  <p>I am calling <code>PUT</code> method to update description in Jira, as below.</p>
  
  <pre class="lang-java prettyprint-override"><code>String _jiraUrl = applicationProperties.get(Constants.JIRAURL)
              + "/rest/api/2/issue/" + reference;
  String _jiraUser = applicationProperties.get(Constants.JIRAUSER);
  String _jiraPwd = applicationProperties.get(Constants.JIRAPWD);
  String auth = new String(Base64.encode(_jiraUser + ":" + _jiraPwd));
  int statusCode = invokePutMethod(auth, _jiraUrl.trim(),
              jiraUpdateFromBuilder.toString().trim());
  
  public static int invokePutMethod(String auth, String url, String data) {
  
      int statusCode = 0;
      try {
          Client client = Client.create();
          WebResource webResource = client.resource(url);
          ClientResponse response = webResource
                  .header("Authorization", "Basic " + auth)
                  .type("application/json").accept("application/json")
                  .put(ClientResponse.class, data);
          statusCode = response.getStatus();
          return statusCode;
      } catch (Exception e) {
          Constants.ERROR.info(Level.INFO, e);
  
      }
      return statusCode;
  }
  </code></pre>
  
  <p>Doing so, I am unable to update description of issue in Jira, through any REST API, because here getting status other than 201. And the same problem is with all the field of an Issue in JIRA which contains rich text. Kindly let me know if JRJC can help else if I need to change in JSON or any other approach.</p>