{
m_strOutput+=GetTab(nTab)+"\""+n->m_strVal+"\"";
}
else if(n->type==LONGA)
{
if(atoi(n->m_strVal.data())!=n->m_longVal)
{
char str[100]={0};
itoa(n->m_longVal,str,10);
n->m_strVal=str;
}
m_strOutput+=GetTab(nTab)+n->m_strVal;
}
else if(n->type==LONG)
{
char str[100]={0};
itoa(n->m_longVal,str,10);
n->m_strVal=str;
m_strOutput=m_strOutput+GetTab(nTab)+"\""+n->m_key+"\":";
m_strOutput=m_strOutput+n->m_strVal;
}
else if(n->type==STRING)
{
m_strOutput=m_strOutput+GetTab(nTab)+"\""+n->m_key+"\":";
m_strOutput=m_strOutput+"\""+n->m_strVal+"\"";
}
else if(n->type==BOOL || n->type==NAMEDOBG)
{
m_strOutput=m_strOutput+GetTab(nTab)+"\""+n->m_key+"\":";
m_strOutput=m_strOutput+n->m_objVal;
}
else if(n->type==BOOLA || n->type==NAMEDOBGA)
{
m_strOutput+=GetTab(nTab)+n->m_objVal;
}
output(n->m_next);
}
}
JsonNode* CJson::Get(char* key)
{
if(m_root)
{
NODE* n=m_root;
while(n)
{
if(n->m_key==key)
{
return n;
}
n=n->m_next;
}
}
return 0;
}
JsonNode* CJson::Append(TYPE type,char* key,char* sVal,long nVal)
{
NODE *node=new NODE;
node->type=type;
if(type==STRING)
{
node->m_key=key;
node->m_strVal=sVal;
}
else if (type==LONG)
{
node->m_key=key;
node->m_longVal=nVal;
}
else if(type==OBJECT)
{
node->m_key=key;
}
else if (type==ARRAY)
{
node->m_key=key;
}
else if(type==STRINGA)
{
node->m_strVal=sVal;
}
else if (type==LONGA)
node->m_longVal=nVal;
}
else if(type==OBJECTA)
{
}
else if (type==ARRAYA)
{
}
if(!m_root)
{
m_root=node;
}
else
{
NODE* n=m_root;
while (n->m_next)
{
n=n->m_next;
}
n->m_next=node;
}
return node;
}
JsonNode* CJson::Insert(NODE* node,int index)
{
if(!node)
{
return 0;
}
if(!m_root)
{
m_root=node;
return node;
}
NODE* n=m_root;
for(int i=0;i
if(!n->m_next)
{
break;
}
n=n->m_next;
}
node->m_next=n->m_next;
n->m_next=node;
node->m_parent=0;
return node;
}
JsonNode* CJson::Remove(NODE* node)
{
if(!node)
{
return 0;
}
NODE* nNext=node->m_next,*n=m_root;
if(node==n)
{
delete[] m_root;
m_root=0;
}
else
{
while(n->m_next!=node)
{
n=n->m_next;
}
n->m_next=node->m_next;
delete node;
}
return nNext;
}
int main()
{
FILE *f=fopen("d:\\json.txt","rb");
fseek(f,0,SEEK_END);
long n=ftell(f);
fseek(f,0,SEEK_SET);
char *b=new char[n+1];
b[n]=0;