コード例 #1
0
        public static dynamic GetValue(this JyndData data, JyndItem item)
        {
            switch (data.Source[item.Data])
            {
            case '"':
                return(data.GetText(item));

            case '{':
                return(data.GetObject(item));

            case '[':
                return(data.GetArray(item));

            case 'n':
                return(data.GetNull(item));

            case 't':
                return(data.GetTrue(item));

            case 'f':
                return(data.GetFalse(item));

            default:
                return(data.GetNumber(item));
            }
        }
コード例 #2
0
        public static unsafe dynamic GetBigIntegerOrNull(this JyndData data, JyndItem item)
        {
            if (data.Source[item.Data] == 'n')
            {
                return(data.GetNull(item));

                fixed(char *ptr = data.Source)
                {
                    char *str    = ptr + item.Data;
                    int   length = item.DataLength;
                    bool  signed = *str == '-';

                    if (signed)
                    {
                        length--;
                        str++;
                    }

                    return(GetNumberAsBigInteger(str, item, signed, length));
                }
        }