duanji1610 2010-08-14 01:22
浏览 67

PHP - 生成JSON输出

    $showcaseObject = new stdClass();
    $generalObject = new stdClass();
    $generalObject->roundCorner = 0;
    $generalObject->borderStroke = 2;
    $generalObject->backgroundColor = '#fff';

    $showcaseObject->general = $generalObject;

    echo json_encode($showcaseObject);

and i get something like this

{"general":{
 "roundCorner":"0",
 "borderStroke":"2",
 "backgroundColor":"#ffffff"
 }
}

Now i want to get something like this

{"general":{
 "round-corner":"0",
 "border-stroke":"2",
 "background-color":"#ffffff"
 }
}

i try to change above code like under code, and get syntax error, unexpected '='

 $generalObject->round-corner = $row->general_round_corner_radius;
 $generalObject->border-stroke = $row->general_border_stroke;
 $generalObject->background-color = $row->background_color;

Help me !

  • 写回答

3条回答 默认 最新

  • douzinei6926 2010-08-14 01:27
    关注

    To convert first form to second, traverse over each key and convert the keyname.

    foreach ($generalObject as $keyName => $keyValue) {
        $newKey = strtolower(preg_replace('/([^A-Z])([A-Z])/', "$1_$2", $keyName));
        $generalObject[$newKey] = $keyValue;
        unset($generalObject[$keyName]);
    }

    To access them (this is what you're having a problem with), use bracket notation:

    $generalObject['hyphenated-name']
    
    评论

报告相同问题?