<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_transactions_json(self, include_investment=False, skip_duplicates=False, start_date=None, id=0):
 """Returns the raw JSON transaction data as downloaded from Mint. The JSON transaction data includes some additional information missing from the CSV data, such as whether the transaction is pending or completed, but leaves off the year for current year transactions. Warning: In order to reliably include or exclude duplicates, it is necessary to change the user account property 'hide_duplicates' to the appropriate value. This affects what is displayed in the web interface. Note that the CSV transactions never exclude duplicates. """


        # Warning: This is a global property for the user that we are changing.
        self.set_user_property(
            'hide_duplicates', 'T' if skip_duplicates else 'F')

        # Converts the start date into datetime format - must be mm/dd/yy
        try:
            start_date = datetime.strptime(start_date, '%m/%d/%y')
        except (TypeError, ValueError):
            start_date = None
        all_txns = []
        offset = 0
        # Mint only returns some of the transactions at once.  To get all of
        # them, we have to keep asking for more until we reach the end.
        while 1:
            url = MINT_ROOT_URL + '/getJsonData.xevent'
            params = {
                'queryNew': '',
                'offset': offset,
                'comparableType': '8',
                'rnd': Mint.get_rnd(),
            }
            # Specifying accountId=0 causes Mint to return investment
            # transactions as well.  Otherwise they are skipped by
            # default.
            if id > 0 or include_investment:
                params['id'] = id
            if include_investment:
                params['task'] = 'transactions'
            else:
                params['task'] = 'transactions,txnfilters'
                params['filterType'] = 'cash'
            result = self.request_and_check(
                url, headers=JSON_HEADER, params=params,
                expected_content_type='text/json|application/json')
            data = json.loads(result.text)
            txns = data['set'][0].get('data', [])
            if not txns:
                break
            if start_date:
                last_dt = json_date_to_datetime(txns[-1]['odate'])
                if last_dt < start_date:
                    keep_txns = [
                        t for t in txns
                        if json_date_to_datetime(t['odate']) >= start_date]
                    all_txns.extend(keep_txns)
                    break
            all_txns.extend(txns)
            offset += len(txns)
        return all_txns