我正在尝试从MySQL服务器返回读取的json内容.这应该很简单但是,有一个"怪异"的角色一直出现在内容的开头.
我有两页用于返回内容:
kcb433.sytes.net/as/test.php?json=true&limit=6&input=d
这个test.php来自Timothy Groves编写的脚本,它将数组转换为json输出
http://kcb433.sytes.net/k.php?k=4
这一个应该做同样的事情
我试着在jsonformatter.curiousconcept.com验证它,但只是第1页得到验证,第2页说它不包含JSON数据.
如果直接访问这两个页面都没有问题.然后有什么区别,为什么两者都没有得到验证?
然后我找到了这个页面jsonformat.com并尝试了同样的事情.第1页还可以,第2页不是,但令人惊讶的是,数据可以读取.乍看上去,
{"a":"b"}
Run Code Online (Sandbox Code Playgroud)
可能看起来不错,但前面有一个角色.
根据在线十六进制编辑器,这是上面的字符串的值(而不是9个值,有10个):
-- 7B 22 61 22 3A 22 62 22 7D
Run Code Online (Sandbox Code Playgroud)
第2页中回显json的代码是:
header("Content-Type: application/json");
echo "{\"a\":\"b\"}";
Run Code Online (Sandbox Code Playgroud) 我有这个类,它有一个两个字符结构和另一个结构的双列表模板
typedef struct KeyC{
char K[5];
char C[9];
} TKeyC;
typedef struct Bin{
char Car;
char Cad[9];
TKeyC *KC;
} TBin;
class Bo {
private:
TDoubleList<TBin> *Ent;
public:
...
}
Run Code Online (Sandbox Code Playgroud)
我有一个创建节点的方法.没问题,但是当我调用其他方法来修改指向新TKeyC结构的指针的方向时,这根本不会发生.
TNode<TBin> *Aux;
TKeyC *AuxKC=new TKeyC;
Aux->getObj().KC=AuxKC;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我是否必须使用类而不是结构,或者是结构问题还是存在错误?
更新
template <class T>
class TNode
{
private:
T TObj;
TNode<T> *Prev,*Next;
public:
TNode();
~TNode();
TNode(T);
void setObj(T);
void sPrev(TNode<T>*);
void sNext(TNode<T>*);
T getObj();
TNode<T>* gPrev();
TNode<T>* gNext();
};
Run Code Online (Sandbox Code Playgroud)
方法getObj:
template <class T>
T TNode<T>::getObj() {return(TObj);};
Run Code Online (Sandbox Code Playgroud)