///key[] 给一个字符串, key_kenth 要等于前边字符串的长度, str 是整条字符串的数组, str_lenth 是str从0的位置到str_lenth的位置,从这个范围里找key , value[]给传入一个接收value值的数组,返回值是value的长度
u8 GetJson(u8 key[],u8 key_kenth,u8 str[],u8 str_lenth,u8 value[]){
u16 i;
u8 j;
u8 m;
u8 n;
u8 isPP=0;
for(i=0;i<(str_lenth-key_kenth-1);i++){
if(str[i]=='"'&&str[i+key_kenth+1]=='"'&&str[i+key_kenth+2]==':'&&str[i+key_kenth+3]=='"'){
isPP=1;
for(j=0;j<key_kenth;j++){
if(key[j]!=str[j+i+1]){
isPP=0;
}
}
if(isPP==1){
for(m=0;m<(str_lenth-key_kenth-1);m++){
if(str[i+key_kenth+4+m]=='"'){
//printf("匹配到JSON,位置在 %d - %d \r\n",i+key_kenth+4,i+key_kenth+m+4);
for(n=0;n<m;n++){
value[n] = str[i+key_kenth+4+n];
}
return m;
}
}
}
}
}
return 0;
}
////测试JSON 测试时USART1_SendString的函数需要自己实现
//// u8 Arr[64];
//// u8 i;
//// USART1_SendString("\r\n",2);
//// USART1_SendString("\r\n password:",12);
//// i = GetJson("password",8,"{\"SSID\":\"mcuart_cn\",\"password\":\"123456666\",\"roomname\":\"C1808\"}",62,Arr);
//// USART1_SendString(Arr,i);
//// USART1_SendString("\r\n roomname:",12);
//// i = GetJson("roomname",8,"{\"SSID\":\"mcuart_cn\",\"password\":\"123456666\",\"roomname\":\"C1808\"}",62,Arr);
//// USART1_SendString(Arr,i);
//// USART1_SendString("\r\n SSID:",8);
//// i = GetJson("SSID",4,"{\"SSID\":\"mcuart_cn\",\"password\":\"123456666\",\"roomname\":\"C1808\"}",62,Arr);
//// USART1_SendString(Arr,i);
//// USART1_SendString("\r\n",2);
·关于我们·免责声明·服务条款·RSS订阅·dede168.com技术支持
Copyright © 1998-2015 All rights reserved.